[Spring] @Autowired vs @Resource

limlim·2023년 5월 4일
0

Spring

목록 보기
6/8

개요

  • 스프링 공부를 하다보니 어떤 곳에서는 @Autowired 어노테이션이 사용되고, 어떤 곳에서는 @Resource를 사용해 개념이 헷갈려 정리하였습니다.
  1. @Autowired
  • 타입(클래스)로 Bean을 지정함 (생성자/필드/메서드에 모두 적용 가능)
  1. @Resource
  • Name으로 Bean을 지정함 (필드/메서드에만 적용 가능)
  1. @Autowired vs @Resource
  • @Autowired 어노테이션이 타입(클래스)를 이용해서 의존성을 주입한다면, @Resource 어노테이션은 빈 이름을 이용해서 의존성을 주입함
  1. 예시 코드
// @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;
}

-참고자료: https://iwannafullstack.tistory.com/entry/Resource-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98-%EC%9D%B4%EB%9E%80

profile
不怕慢,只怕站 개발자

0개의 댓글