1

생성자 기반 종속성 삽입을 사용하여 bean 인스턴스를 얻으려고합니다. 하지만 계속 던지고있다. org.springframework.beans.factory.UnsatisfiedDependencyException.ConstructorProperties 주석이 작동하지 않습니다.

오류 메시지 : 클래스 경로 [bean.xml]에 정의 된 'bean1'이름의 bean 작성 중 오류 : [java.lang.String] 유형의 색인 1을 사용하여 생성자 인수를 통해 충족되지 않은 종속성 표시 : 모호한 생성자 인수 유형 - 생성자 인수로 올바른 bean 참조를 지정 했습니까?

package com.example.app; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

import com.example.bean.Bean1; 


public class TestApp { 

    @SuppressWarnings("resource") 
    public static void main(String[] args) { 
     ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"bean.xml"}); 
     Bean1 bean1 = context.getBean("bean1",Bean1.class); 
     bean1.print(); 

    } 
} 

bean.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd"> 

    <bean id="bean1" class="com.example.bean.Bean1"> 
     <constructor-arg name="years" value="7500000"/> 
     <constructor-arg name="ultimateanswer" value="42"/> 
    </bean> 
</beans> 

누군가의 도움을 파악 할 수 TestApp.java

Bean1.java

package com.example.bean 
import java.beans.ConstructorProperties; 

public class Bean1 { 

    private int years; 

    private String ultimateAnswer; 

    @ConstructorProperties({"years", "ultimateAnswer"}) 
    public Bean1(int years, String ultimateAnswer) { 
     this.years = years; 
     this.ultimateAnswer = ultimateAnswer; 
    } 

    public int getYears() { 
     return years; 
    }  
    public void setYears(int years) { 
     this.years = years; 
    } 
    public String getUltimateAnswer() { 
     return ultimateAnswer; 
    } 
    public void setUltimateAnswer(String ultimateAnswer) { 
     this.ultimateAnswer = ultimateAnswer; 
    } 

    public void print() { 
     System.out.println("years:" + years + ", ultimateAnswer:" + ultimateAnswer); 
    } 
} 

:

다음은 내 간단한 코드입니다 뭐가 문제인가? ? 미리 감사드립니다.

+0

ultimateAnswer을해야한다 .RELEASE/spring-framework-reference/htmlsingle/# beans-constructor-injection – dereck

답변

2

사소한 오타 :-),하지, 당신의 XML에서이 코드는 http://docs.spring.io/spring/docs/4.0.3에서 [생성자 인수 해상도] 섹션에서입니다 ultimateanswer

+0

아, 맞아! 감사!^_^ – dereck

+1

문서 수정 요청을 보냈습니다 - https://github.com/spring-projects/spring-framework/pull/514 –

관련 문제