작성
·
287
5
안녕하세요 영한님! 완강하고 리뷰하는데 질문이 생겨서 질문드립니다!!!
이전에 제가 질문으로 AutoAppconfig는 @Configuration 붙어있는데 exclude 안당하고 어떻게 돌아가냐 라는 질문에
new Annotation....(AutoAppconfig.class); 에 넣어주기 때문이라고 하셨습니다.
@SpringBootApplication 은 @ComponentScan이 내부 코드에 들어가 있고 그렇기에 최상단에 위치하는 것이 좋다고 하셨습니다. 그렇다면 이 CoreApplication은 빈등록이 어떻게 되는거죠?? 그냥 얘는 스프링에서 자동으로 해주기 때문에 AutoAppconfig 같이 직접 스프링 컨테이너에 넣어줄 필요가 없는건가요?? 궁금합니다!
답변 2
5
안녕하세요. kangsy763님
스프링부트는 자바 main을 처음 실행할 때 run의 파라미터로 @SpringBootApplication이 붙은 메인 클래스(CoreApplication.class)를 넘겨줍니다. 그러면 스프링부트가 내부에서 자동으로 해당 클래스를 스프링 빈으로 등록해서 사용합니다. 그렇기 때문에 직접 스프링 컨테이너에 등록하지 않아도 됩니다.
@SpringBootApplication
public class CoreApplication {
public static void main(String[] args) {
SpringApplication.run(CoreApplication.class, args);
}
}
감사합니다.
1