@Component
애너테이션이 붙은 클래스를 찾아 스프링 빈으로 만들고 빈 간의 의존성을 조립할 수 있다.계층의 역할을 명확히 하기 위해 스프링이 인식할 수 있는 애너테이션을 직접 만들어 사용할 수도 있다.
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUINTIME)
@Documented
@Component
public @interface PersistenceAdapter {
@AliasFor(annotation = Component.class)
String value() default "";
}
@Componen
t가 붙은 클래스를 모두 찾아 빈으로 등록하는데 모든 클래스를 파악하는 것도 어렵고 부수 효과로 인한 에러가 발생할 수도 있다.@Configuration
애너테이션이 붙은 설정 클래스 하위에서 @Bean
애너테이션을 통해 클래스들을 빈으로 등록하는 방법public
으로 만들어야 한다.