@Autowired란?
@Autowired는 스프링 컨테이너에서 관리하고있는 의존성 객체들을 주입받기 위해 사용하는 어노테이션입니다.
@Autowired 사용법
예제를 통해 @Autowired 어노테이션 사용법을 설명드리겠습니다.
@Autowired 어노테이션은 필드, 메소드, 생성자 등 여러 곳에서 사용 가능합니다.
필드 주입
@Autowired
private AutowiredService service;
생성자 주입
private final AutowiredService service;
@Autowired
public AutowiredController(AutowiredService service) {
this.service = service;
}
setter 주입
private AutowiredService service;
@Autowired
public void setService(AutowiredService service) {
this.service = service;
}
@Autowired(required=false) 사용법
주입받을 객체가 존재하지 않는데 빈이 생성되어야 하는 경우가 있습니다.
그럴 때 @Autowired 어노테이션의 required=false 옵션을 사용하면 됩니다.
// 필드 주입
@Autowired(required = false)
private AutowiredService service;
//----------------------------------------------
// 생성자 주입
private final AutowiredService service;
@Autowired
public AutowiredController(@Autowired(required = false) AutowiredService service) {
this.service = service;
}
//----------------------------------------------
// setter 주입
private AutowiredService service;
@Autowired
public void setService(@Autowired(required = false) AutowiredService service) {
this.service = service;
}
require=false로 설정한 상태에서 주입받을 객체가 존재하지 않으면 null로 설정됩니다.
require=false 옵션이 없으면 required=true로 적용되기 때문에 스프링 프로젝트 실행 시 오류가 발생합니다.
읽으면 좋은 글
[Java] Spring Boot @Configuration과 @Bean 어노테이션 사용법