스프링 사출 유형
생성자 주입
@Component
public class SecondBeanImpl implements SecondBean {
private FirstBean firstBean;
@Autowired
public SecondBeanImpl(FirstBean firstBean) {
this.firstBean = firstBean;
}
}
이는 다음과 유사합니다.
FirstBean firstBean = new FirstBeanImpl();
SecondBean secondBean = new SecondBeanImpl(firstBean);
이 유형의 종속성 주입은 개체를 인스턴스화하고 초기화합니다.
이 접근 방식에서 빈은 변경 불가능하고 종속성은 null이 아닙니다. 그러나 생성자에 많은 매개변수를 정의하면 코드가 깨끗하지 않습니다.
Spring 4.3부터는 클래스에 단일 생성자가 있는 경우 @Autowired 주석이 필요하지 않습니다.
세터 주입
@Component
public class SecondBeanImpl implements SecondBean {
private FirstBean firstBean;
@Autowired
public setFirstBean(FirstBean firstBean) {
this.firstBean = firstBean;
}
}
이는 다음과 유사합니다.
FirstBean firstBean = new FirstBeanImpl();
SecondBean secondBean = new SecondBeanImpl();
secondBean.setFirstBean(firstBean);
이 접근 방식에서 빈은 변경할 수 없으며(나중에 setter를 호출할 수 있음) 필수 종속성이 없으면 NullPointerException이 발생할 수 있습니다.
필드 인젝션
@Component
public class SecondBeanImpl implements SecondBean {
@Autowired
private FirstBean firstBean;
}
이 접근 방식은 더 깔끔해 보이지만 종속성을 숨기고 테스트를 어렵게 만듭니다. 생성자 및 설정자 주입은 프록시를 사용하는 반면 필드 주입은 성능에 영향을 줄 수 있는 리플렉션을 사용합니다. 테스트 클래스에서 사용할 수 있습니다.
Reference
이 문제에 관하여(스프링 사출 유형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/eidher/spring-injection-types-c6d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@Component
public class SecondBeanImpl implements SecondBean {
private FirstBean firstBean;
@Autowired
public SecondBeanImpl(FirstBean firstBean) {
this.firstBean = firstBean;
}
}
FirstBean firstBean = new FirstBeanImpl();
SecondBean secondBean = new SecondBeanImpl(firstBean);
@Component
public class SecondBeanImpl implements SecondBean {
private FirstBean firstBean;
@Autowired
public setFirstBean(FirstBean firstBean) {
this.firstBean = firstBean;
}
}
이는 다음과 유사합니다.
FirstBean firstBean = new FirstBeanImpl();
SecondBean secondBean = new SecondBeanImpl();
secondBean.setFirstBean(firstBean);
이 접근 방식에서 빈은 변경할 수 없으며(나중에 setter를 호출할 수 있음) 필수 종속성이 없으면 NullPointerException이 발생할 수 있습니다.
필드 인젝션
@Component
public class SecondBeanImpl implements SecondBean {
@Autowired
private FirstBean firstBean;
}
이 접근 방식은 더 깔끔해 보이지만 종속성을 숨기고 테스트를 어렵게 만듭니다. 생성자 및 설정자 주입은 프록시를 사용하는 반면 필드 주입은 성능에 영향을 줄 수 있는 리플렉션을 사용합니다. 테스트 클래스에서 사용할 수 있습니다.
Reference
이 문제에 관하여(스프링 사출 유형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/eidher/spring-injection-types-c6d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@Component
public class SecondBeanImpl implements SecondBean {
@Autowired
private FirstBean firstBean;
}
Reference
이 문제에 관하여(스프링 사출 유형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/eidher/spring-injection-types-c6d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)