본문 바로가기

Spring_SpringBoot/이론

스프링부트의 ComponentScan Bean이해

GetMapping 간단한 예시

 

기존 Spring에서는 componet-scan을 XML파일로 등록해 빈(Bean)을 설정했다. 그러나 Spring-Boot에서는 딱히 설정하지 않아도 충분히 가능했다. 그 이유는 무엇일까?

 

→ 답은 메인 클래스에 있는 import org.springframework.boot.autoconfigure.SpringBootApplication; 에 있다.

SpringBootApplication에 있는 @ComponentScan 어노테이션이 있다. 이 어노테이션이 기본적으로 main() 메소드가 포함된 클래스가 속해 있는 패키지를 베이스로 패키지로 하여 빈 등록을 처리하는 것이다.

 

즉, 현재 상황은 XML 설정 파일에 <context:component-scan base-package="com.****>로 설정한 것과 동일하게 동작한다.

 

그렇다면 무조건 main() 메소드가 포함된 클래스가 속해 있는 패키지에서만 클래스를 만들어야 하는 것은 아니다.

 

main() 메소드가 있는 곳에

@ComponentScan(basePackages = {"com.*", "com.*"})의 방식으로 추가할 수 있다.

 

 

 

'Spring_SpringBoot > 이론' 카테고리의 다른 글

SpringBoot 의존성 관리  (0) 2024.06.03
RestController/Controller  (0) 2024.06.03
Spring-Security pom.xml(보완)과 Tomcat  (0) 2024.06.03
스프링부트 어노테이션 ☏  (0) 2024.06.03
스프링부트(SpringBoot)의 장점  (0) 2024.06.03