Я взял класс бобов, и в этом классе я взял внутренний боб. Я настроил их обоих в файле конфигурации. Но когда я пытаюсь запустить свое Java-приложение, оно выдает мне исключение, говорящее «Ошибка создания bean-компонента с именем 'id1', определенным в ресурсе пути к классу [spconfig.xml]: Ошибка при установке значений свойства; вложенное исключение - org.springframework.beans .NotWritablePropertyException: недопустимое свойство 'db' класса бина [SampleBean]: свойство бина 'db' недоступно для записи или имеет недопустимый метод установки. Вы имели в виду '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();
}
}