스프링 핵심 원리/의존관계 자동 주입
자동 주입 대상을 옵션으로 처리 하는 방법
jeongdalma
2020. 12. 29. 00:02
주입할 스프링 빈이 없어도 동작해야 할 때가 있다. 그런데 @Autowired만 사용하면 required 옵션의 기본값이 true로 되어 있어서 자동 주입 대상이 없으면 오류가 발생한다.
자동 주입 대상을 옵션으로 처리하는 방법
-
@Autowired(required=false) : 자동 주입할 대상이 없으면 수정자 메서드 자체가 호출 안됨
-
org.springframework.lang.@Nullable : 자동 주입할 대상이 없으면 null이 입력된다.
- 스프링 전반적으로 지원된다
-
Optinal<> : 자동 주입할 대상이 없으면 Optinal.empty가 입력된다.
AutowiredTest
public class AutowiredTest {
@Test
void AutowiredOption(){
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(TestBean.class);
}
static class TestBean{
@Autowired(required=false)
public void setNoBean1(Member noBean1){
// 예) 스프링 컨테이너에 관리되는 것이 없을 때
// Member객체는 스프링 컨테이너에 관리되지 않는것이다.
System.out.println("noBean1 = " + noBean1);
}
@Autowired
public void setNoBean2(@Nullable Member noBean2){
System.out.println("noBean2 = " + noBean2);
}
@Autowired
public void setNoBean3(Optional<Member> noBean3){
System.out.println("noBean3 = " + noBean3);
}
}
}
스프링 핵심 원리 - 기본편 - 인프런
스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온
www.inflearn.com