티스토리 뷰
반응형
@Resource, @Autowired, @Inject 이 어노테이션들은 JAVA를 이용해서 개발을 해봤다면 한번쯤은 봤을 어노테이션들입니다.
3가지 다 의존 객체를 자동으로 주입할 때 사용한다는 공통점이 있습니다. 그럼 차이점은 무엇일까요?
바로 서로 의존 객체를 찾는 방식이 다르고, 사용환경이 다릅니다.
1. @Resource
@Resource는 자바에서 제공해주는 어노테이션으로 특정 프레임 워크에 종속적이지 않습니다.
이름 → 타입 → @Qualifier 순서로 객체를 찾습니다.
못찾을 경우 @Resource(name='test') 와 같이 name 속성을 이용해서 의존 객체를 찾습니다.
멤버변수, setter메소드에 사용합니다.
2. @Autowired
@Autowired는 스프링 프레임워크에서 제공하는 어노테이션입니다.
타입 → 이름 → @Qualifier 순서로 객체를 찾습니다.
멤버변수, setter메소드, 생성자, 일반 메소드에 사용
3. @Inject
@Inject는 자바에서 제공해주는 어노테이션으로 특정 프레임 워크에 종속적이지 않습니다.
타입 → @Qualifier → 이름 순서로 객체를 찾습니다.
해당 어노테이션을 사용하기 위해서는 maven, gradle에 javax의존성을 추가해야합니다.
멤버변수, setter메소드, 생성자, 일반 메소드에 사용
** @Qualifier이란?
타입이 동일한 bean객체가 여러개 있으면 스프링이 어떤bean을 주입해야 될지 모르기 때문에 스프링 컨테이너를 초기화 하는과정에서 Exception이 발생됩니다. 이를 방지하기 위해 사용하는 어노테이션입니다.
반응형
'JAVA, Kotlin' 카테고리의 다른 글
[Kotlin] 예외 처리 (0) | 2023.04.09 |
---|---|
[Kotlin] Null 안정성, Null 처리 방법 (0) | 2023.04.01 |
람다 Lambda 란? (0) | 2021.06.23 |
컴파일러 vs 인터프리터 (0) | 2021.03.04 |
== 와 equals 차이? (0) | 2021.03.03 |
댓글