스프링은 @Autowired Annotation 없이 생성자에 종속성을 주입합니다.
이 Spring 공식 튜토리얼의 예를 시험하고 있는데, 이 코드에 의존합니다.
https://github.com/spring-guides/gs-async-method/tree/master/completehttpsgithub.com/spring-guides//tree/master/complete
「 」의 , 「 」의 코드를 해 주세요.AppRunner.java두 가지 질문이 : ㅇㅇㅇ, ㅇㅇㅇㅇ, ㅇㅇㅇㅇ.
- 때이를 넣으면 .
GitHubLookupService봄을 하여 제공되고 있습니다.@Service그런 게 없었어요.@Autowired어떻게 이 컨스트럭터를 올바른 의존관계로 호출할 수 있을까요?원래 이렇게 하기로 되어있었는데null.
스프링 부트의 자동 가정입니까?
봄철 '민간 밭+시공자' 콩?
스프링 프레임워크입니까, 스프링 부츠입니까?
가가뭘 ?놓 ???
- 제 기억으로는, 콩/서비스 등에 디폴트 컨스트럭터를 제공하는 것이 수복이었던 것 같습니다.왜 이런 수업이야?
AppRunner) 에는 기본 생성자가 없습니다.Spring은 어떻게 인수와 함께 컨스트럭터를 운영해야 하는지 알 수 있습니까?게게 유유 ?공 공? ???
Spring 4.3부터는 Spring bean으로 설정된 클래스에 컨스트럭터가1개밖에 없는 경우@Autowired주석을 생략할 수 있으며 스프링은 해당 생성자를 사용하여 필요한 모든 종속성을 주입합니다.
기본 생성자에 대해:기본 생성자, 즉 기본 생성자가 필요합니다.@Autowired여러:@Autowired석입니니다다
자세한 내용은 스프링 공식 문서의 장을 참조하십시오.
이렇게 생각해 보세요...다음과 같은 구성 요소가 있다고 가정합니다.
@Component
public class FooService {
public FooService(Bar bar) { /*whatever*/ }
}
Spring은 이 클래스를 스캔할 때 인스턴스 구성 방법을 알고 싶어 합니다.리플렉션을 사용하여 런타임에 모든 생성자 목록을 가져올 수 있습니다.
이 경우 스프링이 이 인스턴스를 어떻게 구성해야 하는지는 완전히 명확합니다.컨스트럭터는 1개뿐이기 때문에 결정도 없고 애매모호도 전혀 없습니다.
추가한다면@Autowired여기서 당신은 아무것도 좁히지 않고, 스프링의 결정을 돕기 위한 어떠한 추가 정보도 주지 않는다.-스프링의 결정은 단 한 명의 후보자가 있기 때문에 이미 내려진 것이다.
그래서 편의상 스프링 팀은@Autowired옵션이어야 합니다.스프링 프레임워크가 결정을 내리는 데 도움이 되지 않기 때문에, 그 존재는 잡음일 뿐이다.
구성 요소에 여러 개의 생성자가 있는 경우 다음을 사용할 수 있습니다.@Autowired그 중 한 명이 스프링에게 "저거 말고 이거 써"라고 말했다.
언급URL : https://stackoverflow.com/questions/41092751/spring-injects-dependencies-in-constructor-without-autowired-annotation
'programing' 카테고리의 다른 글
| 상태 배열의 항목을 편집하는 방법 (0) | 2023.03.21 |
|---|---|
| PHP에서 직렬화 또는 json을 수행하시겠습니까? (0) | 2023.03.21 |
| sqlplus에서 "PL/SQL procedure successfully completed" 메시지를 표시하지 않으려면 어떻게 해야 합니까? (0) | 2023.03.21 |
| 각도 지연 방법JS 인스턴트 검색? (0) | 2023.03.21 |
| $http가 요청으로 쿠키를 보내지 않음 (0) | 2023.03.16 |