当一个bean仅被用作另一个bean的属性时,才能被声明为一个内部bean。为了定义inner bean,在Spring的基于XML的配置元数据中,可以在<property/>或<constructor-arg/>元素内使用<bean/>元素,内部bean通常是匿名的,它们的Scope一般是prototype。
内部bean可以用setter注入“属性”和构造方法注入“构造参数”的方式来实现。
比如,在我们的应用程序中,一个Customer类引用了一个Person类,我们要做的是创建一个Person的实例,然后在Customer内部使用。
public class Customer{
private Person person;
//Setters and Getters
}
public class Person{
private String name;
private String address;
private int age;
//Setters and Getters
}
内部bean的声明方式如下:
<bean id="CustomerBean" class="com.common.Customer">
<property name="person">
<!--This is inner bean-->
<bean class="com.common.Person">
<property name="name" value="lokesh"/>
<property name="address" value="India"/>
<property name="age" value="34"/>
</bean>
</property>
</bean>