반응형

Spring - Annotation Based Configuration


(원문 위치 : http://www.tutorialspoint.com/spring/spring_annotation_based_configuration.htm )

'annotation'을 사용한 DI 설정은 Spring 2.5부터 시작되었다. 따라서 bean 관계(wiring)를 나타내는 XML을 사용하는 대신, 관련된 class, method, field 선언에서 'annotation'을 사용하여 component class 내부로 bean설정을 옮길 수 있다.

Annotation Injection은 XML설정 이전에 수행되어진다. 따라서 두가지 접근(XML, annotation)에 의한 속성 묶음(wire)에 대해 이후 설정은 이전 설정을 덮어쓸 것이다.(override)

Annotation wiring은 Spring container에 의해 기본(default)으로 동작되도록 설정되지 않는다. 따라서 annotation 기반 wiring을 사용하기 전에 Spring 설정파일에서 이를 가능하도록 해야한다. Spring 프로그램에서 어떠한 annotation을 사용하기를 원한다면 아래 설정을 참고한다.
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

   <context:annotation-config/>
   <!-- bean definitions go here -->

</beans>
<context:annotation-config/>가 설정되어진 이후, Spring이 property, method, constructor에 값을 자동적으로 묶는(wire)하는 것을 명시하기 위한 annotating code를 사용할 수 있다. annotation injection이 어떻게 동작하는지 이해하기 위항 중요한 annotation 몇가지를 보자.
S.N.Annotation & Description
1@Required

bean의 setter method 속성에 적용된다.

2@Autowired

bean의 setter method, non-setter method, constructor, property에 적용되어 질 수 있다.

3@Qualifier

정확히 어떤 bean이 묶여질(wire) 것인지를 명시하여 혼란을 제거하기 위해 @Autowired와 함께 사용되어 질 수 있다.

4JSR-250 Annotations

Spring은 @Resource, @PostConstruct, @PreDestroy annotation을 포함하는 JSR-250기반 annotation을 지원한다.


반응형

+ Recent posts