본문 바로가기
🌈 백엔드/스프링 프레임워크

객체컨테이너 + 객체자동등록 @Component

by 개발자 알마 2023. 9. 1.
반응형

 

 

[1] Componset Scanning

 


(1) Componset Scanning 정의

패키지 내의 모든 클래스를 읽어서 set에 저장하여

패키지 내에 @Component 붙은 클래스를 찾아 객체를 생성하여 map에 저장한다. 

 

개발자마다 config.txt 파일을 생성해서 계속 추가할수는 없으니 

보통 공통으로 사용하는 객체에 만들고 본인의 객체는 객체컨테이너에 넣어둔다

둘다 혼용하여 사용한다 

 

(2) Componset Scanning 설정하기 

 

Componset Scanning 방법을 사용하려면 구아바 라이브러리를 사용한다

https://mvnrepository.com/artifact/com.google.guava/guava/32.0.1-jre

 

 

 

pom.xml 파일 내에 라이브러리를 추가한 후 maven 업데이트를 한다 

 

 

 

 

[2] 객체자동등록


(1) @Component 특징

<componetn-scan>으로 @Component가 클래스를 자동으로 검색하여 bean으로 등록한다.

검색할 범위를 지정한다 

map에 저장시 key는 Car -> car , SportsCar -> sportsCar 로 대문자->소문자로 저장한다  

@Controller , @Service, @Repository , @ControllerAdvice의 메타 애너테이션 은 @Componet가 자동으로 들어가있기 때문에

<Componet- scan>으로 검색하면 메타애너테이션도 같이 불러와진다  

 

 

(2) @Component 사용법

 

  • 클래스 앞에 @Component  를 붙인다

 

  • 생략가능하다 

 

(3) @Component 적용하기 

 

객체 컨테이너를 만든다

객체 컨테이너 내부에 @Component를 가진 클래스를 찾는 메서드를 만든다.

 

 

  by Name 객체 찾는 방법(key)

 

클래스의 key 출력 

 

② 방법 : by Type 을 통해 객체 찾기 설정 (value)

 

 

 

반응형

댓글