이 코드인가?봄 오버로드 된 생성자 주입
답변
나는 그렇게 생각하지 않습니다. 인수를 입력 할 수 있습니다 (예 :
<bean id="triangle" class="org.tester.Triangle">
<constructor-arg type="int" value="20" />
<constructor-arg value="10" />
</bean>
).이 시나리오에서는 혼동을 없앨 수 있습니다.
감사. 그러나 나는 모호성을 해결할 생각이 없다. 나는이 사건을 해결하기 위해 스프링이 무엇을하는지 알고 자한다. – NINCOMPOOP
여기에서 첫 번째 인수는 각 메소드의 첫 번째 매개 변수와 일치하고 매개 변수가 일치합니다.
난 당신이 두 번째 생성자 사용 호출 할 경우 첫 번째 생성자를 사용<bean id="triangle" class="org.tester.Triangle">
<constructor-arg type="int" value="20" />
<constructor-arg type="java.lang.String" value="10" />
</bean>
를 호출 할 경우 모호성을
를 제거하는 데 도움이 아래의 솔루션을 제안
<bean id="triangle" class="org.tester.Triangle">
<constructor-arg type="java.lang.String"value="20" />
<constructor-arg type="int" value="10" />
</bean>
따라서 모호성을 해결합니다.
편집 : -
이 문제에 대해 자세히 알아보기 here.
두 생성자에는 두 개의 매개 변수가 있습니다. 우리가 타입을 언급하지 않는다면 봄이 어느 것이 더 좋을지 알고 싶습니까? – NINCOMPOOP
Spring 3.1.0에 대한 테스트에 기초하여 두 번째 생성자가 사용됩니다. 나는 왜 문서가 확실한 답을주지 않았는 지 모른다.
Bitbucket code 테스트하려면 Main 클래스를 실행하여 Triangle 개체를 만드는 데 사용할 생성자에 따라 FIRST 또는 SECOND 문자열을 출력합니다.
- 1. 오버로드 된 생성자 모호성
- 2. 자바 오버로드 된 생성자
- 3. 오버로드 된 생성자 사용
- 4. 오버로드 된 생성자 간 모호성
- 5. 봄 : 주석 기반 구성과 기본 값 (속성)의 생성자 주입
- 6. RavenDB 및 생성자 주입
- 7. vb.net 추상 클래스의 오버로드 된 생성자
- 8. 내 창문에서 나는 생성자가 오버로드 된 생성자
- 9. Cython 및 오버로드 된 C++ 생성자
- 10. MVC : 조건부로 오버로드 된 생성자 호출
- 11. null 인수가있는 오버로드 된 생성자 호출
- 12. 생성자 + 의존성 주입
- 13. mocking을위한 생성자 오버로드 오류
- 14. 생성자 주입 대신 속성 주입 사용
- 15. 오버로드 "기본"생성자 또는 "이"생성자?
- 16. A 생성자 내의 CDI 주입
- 17. 는 생성자 부스트 오버로드 :: shared_ptr의
- 18. 봄 주입 빈 속성이 null입니다.
- 19. 이 봄 주입 작업 만들려면
- 20. 생성자 주입 대체물 (Castle Windsor)
- 21. Servlet 3.0의 생성자 종속성 주입?
- 22. Entity Framework 매개 변수화 된/오버로드 된 생성자?
- 23. 오버로드 된 오버로드 연산자
- 24. 오버로드 된 생성자를 이해해야합니다.
- 25. 주입 된 생성자 매개 변수에서 @Nullable을 무시하는 Guice
- 26. Unity를 사용하여 생성자 매개 변수를 동적으로 주입
- 27. 속성 의존성 주입 유니티를 사용하는 생성자
- 28. 생성자 또는 속성 설정자를 통한 종속성 주입?
- 29. 기본 생성자와 오버로드 된 생성자 사이의 모호성을 처리하는 방법은 무엇입니까?
- 30. 암시 적 매개 변수가있는 오버로드 된 case 클래스 생성자?
참고 - 내 대답을 삭제합니다. 스프링 문서는 http://static.springsource.org/spring/docs/3.1.3.RELEASE/spring-framework-reference/html/beans.html#beans-constructor-injection에서 오독되었습니다. 나를 위해 그것이 클래스의 첫 번째 생성자를 선택하는 것,하지만 나는 그것이 보장하고 다른 사람들이 다른 결과를 얻을 수 있다고 생각하지 않습니다. –
내 WAG는 리플렉션을 사용할 때 Java가 생성자를 반환하는 순서입니다. 나는 그것을 수정하는 첫번째 것을 사용한다고 상상한다. 실제 답변을 알고 싶다면 소스를 찾아보십시오. – JustinKSU
[Spring 생성자 인수 모호성] 참조 (http://stackoverflow.com/q/31728258/217324) –