Java Springbean编译问题
我正在胡闹并尝试一些示例spring代码。在这个例子中,我试图创建一个字符串并在另一个bean中使用它。另一个bean在一个类中设置字符串,然后当我调用该类时,希望它能打印出消息。但是,我收到一条错误消息。有人能告诉我这里可能出了什么问题吗Java Springbean编译问题,java,eclipse,spring,Java,Eclipse,Spring,我正在胡闹并尝试一些示例spring代码。在这个例子中,我试图创建一个字符串并在另一个bean中使用它。另一个bean在一个类中设置字符串,然后当我调用该类时,希望它能打印出消息。但是,我收到一条错误消息。有人能告诉我这里可能出了什么问题吗 public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("MyConfig
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("MyConfig.xml");
SetterMessage message = (SetterMessage) applicationContext.getBean("setStringFromBean");
System.out.println(message.getMessage());
}
public class SetterMessage {
private String message = null;
/**
* Gets message.
*/
public String getMessage() {
return message;
}
/**
* Sets message.
*/
public void setMessage(String message) {
this.message = message;
}
}
<bean id="createString" class="java.lang.String">
<constructor-arg value="Hello from a bean"</constructor-arg>
</bean>
<bean id="setStringFromBean" class="SetterMessage">
<property name="message" ref="createString" />
</bean>
publicstaticvoidmain(字符串[]args){
ApplicationContext ApplicationContext=新类路径xmlapplicationContext(“MyConfig.xml”);
SetterMessage message=(SetterMessage)applicationContext.getBean(“setStringFromBean”);
System.out.println(message.getMessage());
}
公共类SetterMessage{
私有字符串消息=null;
/**
*获取消息。
*/
公共字符串getMessage(){
返回消息;
}
/**
*设置消息。
*/
公共无效设置消息(字符串消息){
this.message=消息;
}
}
您正在按名称查找bean,但尚未设置其名称
尝试:
我在xml文件中有一个错误的注释标记,因此它没有被正确解析您需要创建一个构造函数来设置“message”属性,因为您间接地告诉容器在构造函数的帮助下设置“message”属性。因此,如果不创建构造函数,则无法设置“message”属性值。只需按以下步骤操作:
public SetterMessage(String message) {
this.message = message;
}这不可能是对的。如果xml不可解析,则会出现解析异常。ApplicationContext.getBean按名称而不是id查找,而且您没有在bean定义中指定名称。这是错误的。OP没有为SetterMessage
bean使用
,而是使用
。这将使用setter或reflection设置消息
。同时,他在三年前找到了解决方案并回答了自己的问题。
public SetterMessage(String message) {
this.message = message;