1. application.xml 에 오토스캐닝 등록
1) application.xml 설정
2) 어노테이션으로 Bean 등록
- BookRepository
@Repository, @Service 모두 컴포넌트를 상속한 어노테이션
3) bookRepository 를 bookService 에서 사용 할 수 있도록 의존성 주입
4) 확인!
application.xml 에 설정된 스캐닝에 따라 패키지 하단의 모든 어노테이션을 확인하여 빈 등록과 의존성 주입을 한다.
스프링 2.5부터 가능한 기능
2. 자바 설정파일로 설정
2-1. 자바 설정 파일에 빈 선언
1) 자바 파일에 빈 설정 ApplicationConfig.java 생성
** BookService와 BookRepository에 있던 어노테이션을 모두 제거한다.
*** 아래 빨간 부분은 여기에 안하고 이전에 사용했던 @Autowired로 해도 된다.
2) main 함수 변경
application.xml 읽어오는 부분을 ApplicationConfig.class 로 변경
2-2. 자바 설정 파일에 ComponentScan 설정하여 Bean 따로 설정 안하기
**** 현재와 가장 가까운 방법!
1) ApplicationConfig.java 파일 생성
** basePackageClasses = DemoApplication.class >> DemoApplication.class가 있는 패키지 하위의 있는 컴포넌트 스캔하여 빈 등록
!!! 그러나 위의 ApplicationConfig 파일은 만들 필요가 없다!
스프링 부트 최초 생성시에 있는 메인 함수가 위치한 클래스에 @SpringBootApplication 어노테이션이
@Configuration 과 @ComponentScan을 상속하고 있기 때문에 !
SpringBootApplication 인터페이스 안에 ComponentScan
SpringBootApplication 인터페이스 안에 SpringBootConfiguration 안에 Configuration
'개발 > Spring' 카테고리의 다른 글
IoC - Component, 컴포넌트 스캔 (0) | 2021.04.06 |
---|---|
IoC - Autowire(오토와이어) (0) | 2021.04.04 |
IoC - application.xml 로 빈 설정 (0) | 2021.04.04 |
spring-boot-starter-web (0) | 2021.04.04 |
IoC 컨테이너란 (0) | 2021.04.04 |