주입할 스프링 빈이 없어도 동작해야 할 때가 있다. 그런데 @Autowired만 사용하면 required 옵션의 기본값이 true로 되어 있어서 자동 주입 대상이 없으면 오류가 발생한다.
@Autowired(required=false) : 자동 주입할 대상이 없으면 수정자 메서드 자체가 호출 안됨
org.springframework.lang.@Nullable : 자동 주입할 대상이 없으면 null이 입력된다.
Optinal<> : 자동 주입할 대상이 없으면 Optinal.empty가 입력된다.
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
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.
자동 주입 대상을 옵션으로 처리 하는 방법
주입할 스프링 빈이 없어도 동작해야 할 때가 있다. 그런데 @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
'스프링 핵심 원리 > 의존관계 자동 주입' 카테고리의 다른 글