内部bean
定义在元素的或者 元素之内的bean叫做内部bean,如下例所示:
<bean id="outer" class="...">
<!-- instead of using a reference to a target bean, simply define the target bean inline -->
<property name="target">
<bean class="com.example.Person"> <!-- this is the inner bean -->
<property name="name" value="Fiona Apple"/>
<property name="age" value="25"/>
</bean>
</property>
</bean>
内部bean定义不需要定义的ID或名称。如果指定,则容器不使用此类值作为标识符。容器还会在创建时忽略scope 标签,因为内部bean始终是匿名的,并且始终使用外部bean创建。 开发者是无法将内部bean注入到外部bean以外的其他bean中的。
作为一个极端情况,可以从自定义范围接收销毁回调 , 例如:请求范围的内部bean包含了单例bean,那么内部bean实例会绑定到包含的bean,而包含的bean允许访问request的scope生命周期。 这种场景并不常见,内部bean通常只是供给它的外部bean使用。