" async="async">
', {
cookie_domain: 'auto',
cookie_flags: 'max-age=0;domain=.tistory.com',
cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds
});
<context:annotation-config> 태그란? (스프링 빈 설정 xml) — 제이크서 개발 블로그
<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 애노테이션을 발견하면 애플리케이션 컨텍스트에서 일치하는 빈을 찾아 종속성을 자동으로 삽입한다.
라이프사이클 콜백 (Lifecycle callbacks)
@PostConstruct 와 @PreDestroy 는 빈 생성 이후 그리고 빈이 제거될 때 발동한다.
<context:annotation-config/> 에 의해 등록된 빈 후처리기는 라이프사이클 콜백 메서드들이 적절한 시간에 호출되도록 보장한다.
빈 생성과 의존성 주입 (Bean creation and Dependency Injection)
- 애노테이션 처리 후에 스프링은 빈을 만들고 필수적인 의존성을 애노테이션에 주입한다.
- 애플리케이션 컨텍스트가 스프링 애플리케이션에 의해 사용될 준비가 된다.
요약
<context:annotation-config/> 는 자바 클래스에서 사용되는 다양한 애노테이션을 처리하는 빈 후처리기를 등록하여 Spring 에서 애노테이션 기반 구성을 활성화한다.
- 자바 소스코드를 이용하여 직접 해당 빈과 종속성을 정의하면 보다 간결하고 오류 발생률이 적다고 여겨진다.