Использование внутренних бинов позволяет не указывать явно ссылки на них при описании контекста. Структура проекта:
DependentBean
:
package ru.mydesignstudio.spring.core.ioc.beans; public class DependentBean { private int someValue; public void setSomeValue(int someValue) { this.someValue = someValue; } }
И MainBean
:
package ru.mydesignstudio.spring.core.ioc.beans; public class MainBean { private DependentBean dependentBean; public void setDependentBean(DependentBean dependentBean) { this.dependentBean = dependentBean; } }
Описание контекста:
<?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="mainBean" class="ru.mydesignstudio.spring.core.ioc.beans.MainBean"> <property name="dependentBean"> <bean class="ru.mydesignstudio.spring.core.ioc.beans.DependentBean"> <property name="someValue" value="10" /> </bean> </property> </bean> </beans>
Как видим, здесь в качестве значения свойства dependentBean
сразу идет описание внедряемого бина. Результат при выполнении аналогичен: