@Bean : 스프링 빈으로 등록
@Configuration :싱글톤을 보장해준다.
@Bean으로 설정정보를 만들어서 의존성을 만드는 것은 불편
@ComponentScan을 사용하면 자동으로 @Component가 붙어있는 블래스를 스캔해서 스프링 빈으로 등록해준다.
@Configuration도 같이 등록됨 -> 안에 @component가 존재하기 때문.
@Component로 설정된 클래스를 어떻게 생성할것인가? 무슨 기준으로?
1.해당 클래스의 생성자에 @Autowired를 사용한다.
@Configuration
@ComponentScan(
/**
필터링 할 수 있음, 탐색 범위 지정 할 수 있음.
**/)
public class AutoAppConfig{
}
public static main(){
AnnotationConfigApplicatoinContext ac = new ...(AutoAppConfig.class);
}
이런 식으로 등록해서 사용
참고로 스프링 부트의 경우 @SpringBootApplication 안에 @ComponentScan이 들어 있기 때문에 또한 @ComponentScan이 붙어있는 하위의 것들은 자동 스캔 하기 때문에 @Service @Repository @Component @Configuratoin @Controller등이 자동 등록 된는 거시다.
위의 어노테이션의 포함 관계는 java가 지원하는 것이 아닌 스프링 프레임워크가 지원하는 것이다.
관례는 최상단에 @componentscan을 다는 것임
https://oingdaddy.tistory.com/254
Springboot 에서 @ComponentScan 설정 및 사용법
이전 Xml Config 방식에서 ComponentScan을 사용하는 방법은 다음과 같았다. applicationContext를 구성할때 이렇게 명시적으로 내가 읽어들여야하는 component들이 있는 package를 넣어줬다. 하지만 Springboot에..
oingdaddy.tistory.com
component scan의 default범위 범위를 변경할 필요가 있을 경우 참조하세용
'스프링 핵심 원리' 카테고리의 다른 글
@Autowired 다양한 옵션들 (0) | 2021.11.01 |
---|---|
스프링 라이프 사이클 (싱글톤) (0) | 2021.11.01 |
[spring]다양한 의존관계 주입 방법 (0) | 2021.11.01 |
[Spring] 싱글톤 (0) | 2021.10.04 |
[Spring] IoC 와 DI (0) | 2021.10.03 |