@Resource
🔌 @Resource
정의
@Resource는 이름을 기준으로 Bean을 주입하는 애너테이션이다.
필요한 Bean의 이름이 명확할 때 사용하기 좋으며, 이름이 맞지 않으면 주입에 실패할 수 있다.
🧩 역할
- Bean 이름을 기준으로 의존성을 주입한다.
- 필드나 Setter에 사용할 수 있다.
@Autowired와 달리 이름 기반 주입 성격이 강하다.
🛠 사용법
Field Injection
import javax.annotation.Resource;
public class UserRegisterService {
@Resource
private UserDao userDao;
}
Setter Injection
import javax.annotation.Resource;
public class UserRegisterService {
private UserDao userDao;
@Resource
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
⚠️ 주의사항
- Bean 이름과 필드명 또는 Setter 이름이 맞아야 한다.
- 기본적으로 이름 기준으로 찾기 때문에 이름이 다르면 주입되지 않을 수 있다.
- 생성자 주입에는 일반적으로 사용하지 않는다.
📌 정리
@Resource는 이름 기반 Bean 주입 애너테이션이다.- 필드와 Setter에 주로 사용한다.
- 이름이 명확한 경우에 쓰면 의도가 분명해진다.
댓글남기기