반응형
"김영한 스프링 핵심 원리 기본편" 내용을 기반으로 작성한 내용입니다.
📝@Component 기능을 가진 어노테이션
기본적으로 아래 어노테이션들은 @Component를 가지고 있어서 Component Scan 범위에 포함된다.
- @Controller
- 스프링 MVC 컨트롤러로 인식
- @Service
- 특별 처리는 하지 않지만 비즈니스 계층이라는 걸 인식시킨다.
- @Repository
- 스프링 데이터 접근 계층으로 인식하고, 데이터 계층의 예외를 스프링 예외로 변환해준다.
- @Configuration
- 스프링 설정 정보라는 표시이다
📝직접 어노테이션 만들기 (Custom)
등록할 컴포넌트 설정 어노테이션
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyIncludeComponent {
}
제외할 컴포넌트 설정 어노테이션
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyExcludeComponent {
}
어노테이션 적용시키기
// 어노테이션 (등록)
@MyIncludeComponent
public class BeanA {
}
// 어노테이션 (제외)
@MyExcludeComponent
public class BeanB {
}
컴포넌트 스캔에 등록하거나 제외할 어노테이션 등록
@ComponentScan(
includeFilters = @Filter(type = FilterType.ANNOTATION, classes =
MyIncludeComponent.class),
excludeFilters = @Filter(type = FilterType.ANNOTATION, classes =
MyExcludeComponent.class)
)
반응형