http://happyourlife.tistory.com/211
특정 Bean의 기능 수행을 위해 다른 Bean을 참조해야 하는 경우 사용하는 Annotation으로는 @Autowired또는 @Resource가 있다
- @AutoWired
Spring Framework에서 지원하는 Dependency정의 용도의 Annotation으로, Spring Framework에 종속적이긴 하지만 정밀한 Dependendy Injection이 필요한 경우에 유용하다
- @Resource
JSR-250 표준 Annotation으로 Spring Framework2.5.*부터 지원가능한 Anotation 사용으로 인해 특정 Reamework에 종속적인 어플리케이션을 구성하지 않기 위해서는 @Resource를 사용할 것을 권장한다. @Resource를 사용하기 위해서는 클래스 패스내에 jsr250-api.jsp파일이 추가되어야 함에 유의해야 한다.
@Resource의 예
@Service
public UserServicelmpl implements UserService{
@Resource
private UserDAO userDAO;
}
@Autowired와 @Resource를 사용할 수 있는 위치는 다음과 같이 약간의 차이가 있으므로 필요에 따라 적절히 사용하면 된다
- @Autowired : 필드, 생성자, 입력파라미터가 여러개인 메소드(@Qualifier는 메소드의 파라미터)에 적용가능
- @Resource : 필드, 입력 파라미터가 한 개인 빈 프로퍼티 setter메소드에 적용간
@Autowired나 @Resource를 필드에 직접 정의하는 경우 별도 setter메소드는 정의하지 않아도 된다
@Autowired는 기본적으로 type-driven injection이다. 타입으로 참조할 빈을 찾았을 때 같은 타입의 빈이 여러 개 검색되었을 경우, @Qualfier annotation을 사용하여 구분할 수 있도록 해준다
..... 음...
'차근차근 > Spring' 카테고리의 다른 글
게시판 (0) | 2015.06.15 |
---|---|
@SuppressWarnings (0) | 2015.06.15 |
Controller와 ModealAndView (0) | 2015.06.15 |
Maven으로 Spring MVC 실습하기 (0) | 2015.06.04 |
게시판만들기 (0) | 2015.06.02 |