차근차근/Spring

@Autowired 와 @Resource

예쁜꽃이피었으면 2015. 6. 15. 09:28

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