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으로 인식하여 자동으로 등록
<context:component-scan base-package="패키지명" />
5. TestCase
- @RunWith : SpringFramework에서 Junit4.5+와의 연계를 위해 제공하는 SpringJUnit4ClassRunner클래스로 정의
- @ContextConfiguration : ApplicationContext 생성시 필요한 속성정의 파일 위치 명시
'Development > Java' 카테고리의 다른 글
객체에는 메서드가 포함되지 않는다? (0) | 2013.02.12 |
---|---|
파일 입출력. (0) | 2013.01.29 |
[Spring]SpEL(Spring Expression Language) (0) | 2012.07.31 |
[Spring]Autowiring (0) | 2012.05.03 |
[Spring]AOP 주요 구성요소 (0) | 2012.04.13 |