Spring Framework에는 의존성 주입과 관련된 annotation @Resource
, @Inject
, @Autowired
가 있다. 모두 setter와 field에서 사용할 수 있다.
@Resource
- Match by Name
- Match by Type
- Match by Qualifier
위 우선순위대로 의존성이 주입된다.
@Inject
- Match by Type
- Match by Qualifier
- Match by Name
위 우선순위대로 의존성이 주입된다. @Inject
annotaion을 사용하려면 Gradle 또는 Maven에서 javax.inject 라이브러리를 사용하도록 설정해야 한다.
@Autowired
- Match by Type
- Match by Qualifier
- Match by Name
의존성을 주입하는 우선순위를 포함하여 대부분의 기능이 @Inject
와 유사하다. 하지만 @Autowired
는 Spring Framework의 일부라서 별도의 라이브러리 추가가 필요없다.
요약
@Inject
와 @Autowired
는 타입을 우선으로 의존성을 찾고 @Resource
는 이름을 우선으로 의존성을 찾는다.
출처: https://www.baeldung.com/spring-annotations-resource-inject-autowire
'Dev > Spring' 카테고리의 다른 글
Swagger를 통한 REST 요청에 jwt 인증키 포함시키기 (0) | 2020.01.22 |
---|---|
Spring Boot Request Logging - CommonsRequestLoggingFilter (0) | 2020.01.03 |
[Spring Boot] Actuator를 추가했는데 404 에러가 발생하는 경우 (0) | 2019.09.20 |
Multi-Thread 환경에서 Spring Bean의 Thread Safe 문제 해결 (0) | 2019.09.02 |
댓글