@ComponentScan 3

필터

includeFilters : 컴포넌트 스캔 대상을 추가로 지정 excludeFilters : 컴포넌트 스캔에서 제외할 대상을 지정 먼저, 애노테이션을 만들어보자. 클래스 타입에 붙는 애노테이션이라는 의미이다. @MyIncludeComponent가 붙으면 컴포넌트 스캔에 추가 @MyExcludeComponent가 붙으면 컴포넌트 스캔에서 제외 하도록 만들어보려한다. 컴포넌트 대상으로 추가할 BeanA 컴포넌트 대상에서 제외할 BeanB Config설정 클래스에서 Filter를 만들어 Test하기 includeFilters를 사용하여 Filter타입은 ANNOTATION으로, MyIncludeComponent 애노테이션이 붙은 클래스들은 컴포넌트 대상에 추가 excludeFilters를 사용하여 Filte..

Spring/Spring Core 2021.03.15

탐색 위치와 기본 스캔 대상

탐색할 패키지의 시작 위치 지정 모든 클래스를 다 컴포넌트 스캔하면 시간이 오래 걸린다. 그래서 꼭 필요한 위치부터 스캔하도록 시작 위치를 지정할 수 있다. basePackages를 사용하여 스캔할 범위를 지정한다. 위와 같이 작성하면 member패키지 내에서만 컴포넌트 스캔을 진행하여 memberServiceImpl과 memberMemberRepository만 빈으로 등록된다. 확인해보면 위와 같이 3개만 빈으로 등록된 것을 확인할 수 있다. basePackages = {"hello.core", "hello.service"} 와 같이 여러 시작 위치를 지정할 수도 있다. basePackages : 탐색할 패키지의 시작 위치를 지정한다. 이 패키지를 포함해서 하위 패키지를 모두 탐색한다. basePack..

Spring/Spring Core 2021.03.13

컴포넌트 스캔과 의존관계 자동 주입

지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다. 이렇게 등록해야할 빈이 수십, 수백개가 되면 일일이 등록하기도 귀찮고, 설정 정보도 커지고, 누락하는 문제도 발생한다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 또 의존관계도 자동으로 주입하는 @Autowired라는 기능도 제공한다. @ComponentScan 애노테이션은 @component가 붙은 클래스를 모두 스캔하여 스프링 빈으로 등록해준다. @Configuration또한 컴포넌트 스캔의 대상이므로 Filter를 사용하여 제외시켜주었다. 앞서 만든, AppConfig나 TestConfig등 @Configura..

Spring/Spring Core 2021.03.13
반응형