Annotation을 이용하여 빈을 구성하는 것과 java config를 통해 스프링 컨테이너를 구성하는 법을 알아보겠습니다.
annotation-base 빈 조회를 설정하는 법을 보겠습니다. conponent-scan.xml 을 생성하여 빈을 조회하는 설정을 해보도록 하겠습니다. <context:component-scan>을 통해 base-package 속성에 설정된 패키지의 하위 패키지를 포함하여 모든 클래스를 scan 하여 클래스 중에 @Controller, @Service, @Repository, @Component 어노테이션이 붙은 클래스를 스프링 빈으로 등록하도록 설정합니다. <context:anntation-config/>를 이용하여 @Resource, @Autowired, @Inject 해당 어노테이션을 작업해주는 스프링 설정을 해주어 BeanPostProcessor 빈이 생성된후 처리하도록 하겠습니다.
설정을 적용한 예를 살펴보겠습니다. @Repository를 통하여 BoardRepository를 설정하여 Service에서 @Resource를 통하여 boardRepository를 DI하여 사용합니다.
제대로 주입이되는지 확인하기위한 Junit 테스트 코드입니다.
@Configuration을 이용한 java configuration 을 살펴보겠습니다. JAVA스프링 컨테이너를 xml이 아닌 java파일로 샐성하여 설정하는것입니다. Class에 @Configuration을 달아주어 Spring 컨테이너에게 해당 java파일이 스프링 설정 파일임을 암시한다. Method에 @Bean을 달아주어 해당 메소드에서 리턴하는 객체가 스프링 빈으로 등록되도록 합니다.
잘 설정 되었는지 Junit을 통하여 확인해 보겠습니다.
스프링 공식사이트에서는 Annotation-based 빈등록을 자바로 권장하고 있습니다. 그렇다면 스프링 공식사이트에서는 왜 자바를 권장할까요? 그 이유는 문서가 갖는 특성 때문입니다. xml은 text문서 이기 때문에 실행전에는 에러를 알기 어렵습니다. 자바파일의 경우는 코드이기 때문에 컴파일시점에서 오류를 발견할 수 있다는 장점이 있기때문에 자바파일이 에러를 더 빨리 알아낼 수 있습니다.
자바 설정 scan 파일을 만들기위해 @Configuration을 사용합니다. 또다른 옵션으로 필터기능이 있는데 기본값은 true이며 기본 필터를 끄는 경우도 있습니다.
테스트를 이용하여 제대로 설정 되었는지 확인해보겠습니다.
컨테이너의 설정 형태는 xml로 컨테이너를 설정하고 java 로 xml bean을 스캔하는 것이 있고, java로만 @Bean을 통하여 등록하는경우가 있고 java 설정을 java bean stereotype annotation을 선언하여 스캔하는 경우가 있습니다.
'Web Programming > SPRING' 카테고리의 다른 글
[SPRING] 4-1. AOP (Aspect Oriented Programming) 이해하기 (0) | 2021.10.14 |
---|---|
[SPRING] 3-2. 타입변환 (0) | 2021.10.08 |
[SPRING] 2-2. Bean의 Scope (0) | 2021.10.02 |
[SPRING] 2-1. DI를 이용한 객체 생성 (3) (0) | 2021.10.02 |
[SPRING] 2-1. DI를 이용한 객체 생성 (2) (0) | 2021.09.22 |