본문 바로가기
Dev/Spring

Wiring in Spring (@Resource, @Inject, @Autowired 차이)

by 돈코츠라멘 2019. 9. 15.

Spring Framework에는 의존성 주입과 관련된 annotation @Resource, @Inject, @Autowired가 있다. 모두 setter와 field에서 사용할 수 있다.

@Resource

  1. Match by Name
  2. Match by Type
  3. Match by Qualifier

위 우선순위대로 의존성이 주입된다.

@Inject

  1. Match by Type
  2. Match by Qualifier
  3. Match by Name

위 우선순위대로 의존성이 주입된다. @Inject annotaion을 사용하려면 Gradle 또는 Maven에서 javax.inject 라이브러리를 사용하도록 설정해야 한다.

@Autowired

  1. Match by Type
  2. Match by Qualifier
  3. Match by Name

의존성을 주입하는 우선순위를 포함하여 대부분의 기능이 @Inject와 유사하다. 하지만 @Autowired는 Spring Framework의 일부라서 별도의 라이브러리 추가가 필요없다.

요약

@Inject@Autowired는 타입을 우선으로 의존성을 찾고 @Resource는 이름을 우선으로 의존성을 찾는다.




출처: https://www.baeldung.com/spring-annotations-resource-inject-autowire

댓글