본문 바로가기
Back-End/Spring

[백기선] 스프링 프레임워크 핵심 기술 정리2 - Bean, Component

by hongdor 2020. 10. 4.
728x90

1. @Bean, @Component 어노테이션

 

@Bean : IoC 객체 (메소드를 객체로 등록)

@Component : IoC 객체(클래스를 객체로 등록)

 

보통 class를 접근할 수 없을 때 클래스 객체 생성 메소드를 만들어 Bean으로 등록한다

 

 

2. @Configuration 어노테이션

 

@Configuration : Bean과 Component 등록.

 

- IoC 객체 정의 변천사

XML로 bean 정의 > Java 클래스로 정의 > 자동 탐색 어노테이션 @Configuration > @SpringBootApplication 상속됨

 

 

3. @Autowired

 

@Autowired : 주입을 담당한다. 사용할 수 있는 위치 - 생성자, setter메소드, field변수 같은 이름의 IoC객체가 자동으로 주입됨

주의 : 주입할 빈이 인터페이스라 여러개의 타입이 주입 가능한 경우 @Primary, @Qualifier 등을 이용

 

 

4. @ComponentScan

 

@ComponentScan : 스캔 위치 설정 및 필터링 기능을 한다.

- @SpringBootApplication에서 @Configuration을 상속받고 이것이 @ComponentScan을 상속받음

 

 

5. @Component 자식

 

@Compoent 의 자식들

: @Repository, @Service, @Controller, @Configuration 는 @Component를 상속받음

 

 

6. 스코프

 

- 생명 주기의 길이로 구분.

 

싱글톤 인스턴스 1개만 생성 대부분이 해당한다. 디폴트 값이다.

프로토타입 사용할때마다 새로 생성된다. @Scope("prototype") 으로 설정 가능하다.

 

주의할점 : 싱글톤에 프로토타입을 주입하면 프로토타입 인스턴스가 안바뀌고 유지됨. scoped-proxy 등으로 해결

728x90

댓글