Study/spring

[Java] Spring Boot 3 @Autowired 어노테이션 사용법, 예시

 

@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 어노테이션 사용법

 

[Java] Spring Boot @Configuration과 @Bean 어노테이션 사용법

스프링 부트에서 @Configuration과 @Bean 어노테이션을 사용하는 방법에 대해 설명드리겠습니다.스프링 부트 3 버전에서 진행되었지만, 2버전에도 적용이 가능합니다. @Configuration 이란?@Configuration은 @

priming.tistory.com