728x90
스프링 빈 등록 방법
1. XML <bean>
2. @Bean
3. @ComponentScan, @Component, @Autowired(생성자에서 여러 의존관계도 한 번에 주입 가능)
컴포넌트 스캔은 @Component 뿐만 아니라 다음 내용도 추가로 포함됨
@Component : 컴포넌트 스캔에서 사용
@Controller : 스프링 MVC 컨트롤러에서 사용. 스프링 MVC 컨트롤러로 인식
@Service : 스프링 비즈니스 로직에서 사용
@Repository : 스프링 데이터 접근 계층에서 사용. 스프링 데이터 접근 계층으로 인식하고, 데이터 계층의 예외를 스프링 예외로 변환해준다.
@Configuration : 스프링 설정 정보에서 사용. 스프링 설정 정보로 인식하고 스프링 빈이 싱글톤을 유지하도록 추가 처리를 한다.
애노테이션에는 상속 관계라는 것이 없다. 그래서 이렇게 애노테이션이 특정 애노테이션을 들고 있는 것을 인식할 수 있는 것은 자바 언어가 지원하는 기능은 아니고 스프링이 지원하는 기능이다.
FilterType
- ANNOTATION : 기본값. 애노테이션을 인식해서 동작함
- ASSIGNABLE_TYPE : 지정한 타입과 자식 타입을 인식해서 동작함
- ASPECTJ : AspectJ 패턴 사용
- REGEX : 정규표현식
- CUSTOM : TypeFilter이라는 인터페이스를 구현해서 처리
자동 빈 등록 vs 자동 빈 등록
: 컴포넌트 스캔에 의해 자동으로 스프링 빈이 등록되는데, 그 이름이 같은 경우 스프링은 오류를 발생시킨다
-> ConflictingBeanDefinitionException 발생
자동 빈 등록 vs 수동 빈 등록
: 수동 빈이 우선권을 가짐 -> 안 하는게 좋음..
인프런
스프링 핵심 원리 - 기본편
컴포넌트 스캔
컴포넌트 스캔과 의존관계 자동 주입 시작하기
탐색 위치와 기본 스캔 대상
필터
중복 등록과 충돌
'두두의 IT > Spring' 카테고리의 다른 글
lombok (0) | 2022.10.31 |
---|---|
의존관계 자동 주입 (0) | 2022.10.29 |
싱글톤 (0) | 2022.10.24 |
BeanDefinition (0) | 2022.10.22 |
BeanFactory와 ApplicationContext (0) | 2022.10.22 |