본문 바로가기

개발/Spring

IoC - ComponentScan

반응형

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