spring in action 学习笔记(七)注入内部bean

来源:互联网 发布:mac photoshop 破解版 编辑:程序博客网 时间:2024/05/22 15:24

上一节中,我们为演奏家注入了两个属性,其中的乐器属性,只要实现了Instrument接口,就可以为这个演奏家注入任何一种乐器。

同样的,我们在上一节中声明了一个萨克斯的bean,这个bean可以被任意一个演奏家使用,只要注入到相关的演奏家类就可以了。事实上,在spring中与其他的bean共享相同的bean是非常普遍的。

但是,实际上呢,上一节的演奏家kenny是个讲究卫生的人,不想和其他人共用一个bean,一种方式就是将萨克斯的scope切换成prototype,还有另外一种方式就是类似java的内部类了,为kenny这个bean注入内部bean。

    <!-- 注入内部bean -->    <bean id="kenny" class="com.springinaction.ch02.Instrumentalist">        <property name="song" value="我的秘密"/>        <property name="instrument">            <bean class="com.springinaction.ch02.Saxophone"/>        </property>    </bean>

按照,上述配置就好了,当然,内部bean不仅限于setter注入,同时也支持构造方法的注入,类似与之前的配置,只需要更改property 为constructor-arg即可

注意,这里的内部bean是没有id声明的,加上也不会报错的,但是这个bean已经就是给kenny这个bean注入,其他的地方不会有引用的地方,不去引用,自然不需要id来进行引用

注入内部bean,影响了spring xml 配置的可读性,正常的项目中生产环境也基本没有这么使用的,这里只是知道有这样的一个知识点即可。

原创粉丝点击