개요
@Autowired
어노테이션이 사용되고, 어떤 곳에서는 @Resource를 사용해 개념이 헷갈려 정리하였습니다.
@Autowired
@Resource
@Autowired
vs@Resource
@Autowired
어노테이션이 타입(클래스)
를 이용해서 의존성을 주입한다면, @Resource
어노테이션은 빈 이름을 이용해서 의존성을 주입함
- 예시 코드
// @Autowird를 적용했을 때,
// sqlSession은 SqlSessionTemplate 클래스에 의존성을 가지게 됨
@Repository
public class CommonDao {
@Autowired
private SqlSessionTemplate sqlSession;
}
// @Resource를 적용했을 때,
// sqlSession은 CommonSqlSessionTemplate의 이름을 가진 빈 객체에 의존성을 가지게 됨
// name 속성을 생략하면, @Resource 적용된 필드나 설정 메서드의 타입을 사용함
@Repository
public class CommonDao {
@Resource(name="CommonSqlSessionTemplate")
private SqlSessionTemplate sqlSession;
}