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
'Spring' 카테고리의 다른 글
[Spring] DI를 위한 annottion - @Resource / @Autowired / @Inject / @Qualifier (0) | 2012.08.13 |
---|---|
[Spring] spring 3.x log4j 사용 (0) | 2012.08.10 |
[Spring] annotation 설정 (0) | 2012.08.09 |
[Spring] 테스트 war 파일 (0) | 2012.02.24 |
[Spring] eclipse(indigo) + maven + springMVC (3) (0) | 2012.02.23 |