簡體   English   中英

ConstructorProperties注釋不起作用

[英]ConstructorProperties annotation does not work

我正在嘗試使用基於構造函數的依賴項注入來獲取bean實例。 但是它總是拋出org.springframework.beans.factory.UnsatisfiedDependencyException

錯誤消息:在類路徑資源[bean.xml]中定義名稱為'bean1'的bean創建時出錯:通過索引類型為[java.lang.String]的構造函數參數表示的不滿意依賴性:構造函數參數類型不明確-您是否指定了正確的bean引用作為構造函數參數?

以下是我的簡單代碼:

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);
    }
}

TestApp.java

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>

任何人都可以幫助找出問題所在嗎? 提前致謝!

輕微錯字:-),應該是ultimateAnswer在你的XML,而不是ultimateanswer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM