1. 속성 정의 XML 파일에 추가되어야 하는 정의 

 xmlns:context="http://www.springframework.org/schema/context“
                                  http://www.springframework.org/schema/context
                                  http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
                <context:annotation-config/>       
Spring Container가 Annotation을 인식하기 위해서는 Spring Container에 BeanPostProcessor들이 등록되어있어야한다. <context:annotation-config/>을 추가하면 내부적으로 자동 등록된다.

2. Stereotype
- @Service : Business Layer를 구성하는 서비스 클래스 대상
- @Repository : Data Access Layer를 구성하는 클래스 대상
- @Controller : 프레젠테이션 Layer를 구성하는 클래스 대상, Spring MVC 기반의 경우에 한하여 사용

3. Dependencies
- @Inject, @Autowired, @Resource : 특정 Bean의 비지니스 기능 수행을 위해 다른 Bean을 참조할경우 사용
- @Inject (javax.inject-xxx.jar)
  멤버변수, setter 메소드, 생성자, 일반 메소드에 정의
- @Autowired : Framework에 종속적
- @Resource (jsr250-api.jar)
  멤버변수와 setter 메솓에 정의할수 있음

@Inject 

 @Autowired

@Resource 

type-driven injection 방식  type-driven injection 방식  

name-matching injection 방식  

JSR-330표준, Framework에 종속되지 않음 

 Spring Framework에 종속적   JSR-2500표준, Framework에 종속되지 않음
 @Named 이용하여 특정 빈 지정

@Qualifier를 이용하여 특정 빈 지정 

 Annotation 내에 name 속성을 통해 특정 빈 지정

 멤버변수, setter메소드, 생성자, 일반메소드

   멤버변수, setter메소드, 생성자, 일반메소드    멤버변수, setter메소드

 @Inject 사용을 권장


4. Auto-Detection
- <context:component-scan> 정의 필요
- 클래스패스 상에 존재하는 클래스들을 스캔하여 Stereotype Annotation이 정의된 클래스들과 필터와 비교하여 매칭되는 클래스들을 Bean으로 인식하여 자동으로 등록

5. TestCase
- @RunWith : SpringFramework에서 Junit4.5+와의 연계를 위해 제공하는 SpringJUnit4ClassRunner클래스로 정의
- @ContextConfiguration : ApplicationContext 생성시 필요한 속성정의 파일 위치 명시

 

[ 출처 ] http://blusky10.tistory.com/entry/SpringSpring-Annotation

 

+ Recent posts