我参加了一个 bean 课程,在这个课程中我学习了一个内部 bean。我已经在配置文件中配置了它们。但是当我试图运行我的 Java 应用程序时,它抛出异常说“在类路径资源 [spconfig.xml] 中定义名称为 'id1' 的 bean 创建错误:设置属性值时出错;嵌套异常是 org.springframework.beans .NotWritablePropertyException:bean 类 [SampleBean] 的无效属性 'db':Bean 属性 'db' 不可写或具有无效的 setter 方法。您的意思是 'DB'?为什么我不欢迎内豆?该怎么办?
在配置文件中正确定义的属性。
SampleBean.java
public class SampleBean {
private DemoBean db;
public void setDB(DemoBean db) {
this.db=db;
}
public void show() {
db.m1();
}
}
DemoBean.java
public class DemoBean {
public void m1() {
System.out.println("Welcome to inner bean");
}
}
spconfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="id1" class = "SampleBean">
<property name="db">
<bean class = "DemoBean"/>
</property>
</bean>
</beans>
Client.java
import org.springframework.beans.factory.*;
import org.springframework.beans.factory.xml.*;
import org.springframework.core.io.*;
public class Client {
public static void main(String[] args) {
Resource res = new ClassPathResource("spconfig.xml");
@SuppressWarnings("deprecation")
BeanFactory factory = new XmlBeanFactory(res);
Object o = factory.getBean("id1");
SampleBean sb = (SampleBean)o;
sb.show();
}
}