티스토리 뷰

반응형

@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
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함