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 등으로 해결
'Back-End > Spring' 카테고리의 다른 글
스프링부트 도커 이미지 만들기 (에러 해결 과정) (feat. querydsl) (0) | 2021.02.22 |
---|---|
[백기선] 스프링 프레임워크 핵심 기술 정리5 - Validation (0) | 2020.10.04 |
[백기선] 스프링 프레임워크 핵심 기술 정리4 - Resource (0) | 2020.10.04 |
[백기선] 스프링 프레임워크 핵심 기술 정리3 - ApplicationContext (0) | 2020.10.04 |
[백기선] 스프링 프레임워크 핵심 기술 정리1 - Spring (0) | 2020.10.04 |
댓글