웹/spring
[의존성주입]DI/Dependency Injdection/ 애노테이션/애너테이션/어노테이션- @Autowired, @Resource, @Inject
은은하게미친자
2022. 8. 12. 00:16
728x90
1. @Autowired
- : 주입하려고하는 객체의 타입(type)이 일치하는 객체를 자동으로 주입한다, 타입으로 연결 안되면 이름 으로 연결된다. ex)) private USERVO uservo; 일때 USERVO
- spring framework에서 지원 ,org.springframework.beans.factory.annotation.Autowired
- 필드, 생성자, setter 에 붙일 수 있다. setter에 붙여서 사용할 경우 반드시 생성자가 정의되어있어야 한다.
- 강제연결/빈지정방법 : @Qualifier("title"); , @Primary 사용
- SpringFramwork 안에서만 사용 가능
2. @Resource
- : 주입하려고하는 객체 이름(id)이 일치하는 객체를 자동으로 주입한다. 이름으로 연결 안되면 타입으로 연결된다.ex)) ex)) private USERVO uservo; 일때 uservo
- java 제공 애노테이션, javax.annotation.Resource
- 필드, setter에 붙일 수있다. 생성자에는 붙일 수 없다. @Autowired와 마찬가지로 반드시 기본생성자가 정의
- 강제연결/빈지정방법 : @Resurce(name ="title");
- Java 9 이후로 삭제
3. @Inject
- @Autowired 와 유사하게 주입하려고하는 객체의 타입이 일치하는 객체를 자동으로 주입한다. 타입으로 연결 안되면 이름으로 연결된다. ex)) private USERVO uservo; 일때 USERVO
- java 제공 애노테이션, javax.inject.Inject
- 필드, 생성자, setter에 붙일 수 있다. @Autowired와 마찬가지로 setter에 사용할 경우 반드시 기본생성자가 정의 되어 있어야한다.
- 강제연결/빈지정방법 : @Qualifier("title"); , @Primary 사용, @Named(value=:"title");
- 특정 프레임워크에 종속적이지않음
참고사이트 :
https://codingnojam.tistory.com/13
[Spring] @Autowired, @Inject, @Resource 차이점 비교정리
안녕하세요 코딩노잼입니다. 오늘은 의존성 주입에 사용하는 애너테이션 @Autowired, @Inject, @Resource에 대해서 각각에 대해 어떤 특징과 차이점이 있는지 알아보겠습니다. 예시로 사용할 클래스는
codingnojam.tistory.com
728x90