<context:annotation-config>
태그란?
- 자바 빈을 정의하는
xml
파일에서 사용된다. - 애노테이션을 기반으로 하는 구성 정보 (configuration) 를 사용할 수 있게 해준다.
- 스프링에게 애플리케이션 컨텍스트가 만들어질 때 자바 클래스 애노테이션을 찾아보고 처리하라고 말하는 것이다.
동작 방식
추가 (Inclusion)
<context:annotation-config>
엘리먼트를 스프링 설정 파일에 넣는다.- 이 설정 정보는 스프링에게 애노테이션 기반 구성정보를 지원하라고 전달한다.
빈 후처리 (Bean post-processors)
- 스프링은 애노테이션을 처리하는데 도움이 되는 빈 후처리기를 등록한다.
- 빈 후처리기는
@Autowired
,@Resource
,@PostConstruct
,@PreDestory
와 같은 애노테이션을 처리한다.
스캐닝과 처리 (Scanning and Processing)
- 스프링 컨테이너가 시작될 때, 특정한 패키지에 있는 자바 클래스들을 스캔한다.
<context:component-scan base-package="com.xxx">
와 같이 정의된 패키지 혹은 XML 구성에 명시적으로 정의된 빈에서 Java 클래스를 검색한다.
- 스캔하는 동안 지정된 애노테이션이 있는 빈을 식별하고 절차에 따라 처리한다.
- ex) 필드, 세터 메서드, 생성자에서
@Autowired
애노테이션을 발견하면 애플리케이션 컨텍스트에서 일치하는 빈을 찾아 종속성을 자동으로 삽입한다.
- ex) 필드, 세터 메서드, 생성자에서
라이프사이클 콜백 (Lifecycle callbacks)
@PostConstruct
와@PreDestroy
는 빈 생성 이후 그리고 빈이 제거될 때 발동한다.<context:annotation-config/>
에 의해 등록된 빈 후처리기는 라이프사이클 콜백 메서드들이 적절한 시간에 호출되도록 보장한다.
빈 생성과 의존성 주입 (Bean creation and Dependency Injection)
- 애노테이션 처리 후에 스프링은 빈을 만들고 필수적인 의존성을 애노테이션에 주입한다.
- 애플리케이션 컨텍스트가 스프링 애플리케이션에 의해 사용될 준비가 된다.
요약
<context:annotation-config/>
는 자바 클래스에서 사용되는 다양한 애노테이션을 처리하는 빈 후처리기를 등록하여 Spring 에서 애노테이션 기반 구성을 활성화한다.- 자바 소스코드를 이용하여 직접 해당 빈과 종속성을 정의하면 보다 간결하고 오류 발생률이 적다고 여겨진다.
반응형
'프레임워크 > 스프링 프레임워크' 카테고리의 다른 글
스프링 RedisTemplate 이란? (0) | 2023.04.25 |
---|---|
자바 애노테이션으로 빈을 구성하는게 XML 로 구성하는 것 보다 나은 이유 (0) | 2023.04.21 |
스프링 세션 (Spring Session) 이란 무엇이고 어떻게 작동할까? (0) | 2023.04.20 |
스프링 레디스 세션 사용법 (0) | 2023.04.19 |
스프링 레디스 세션 적용법 (0) | 2023.04.19 |