Spring中 Bean的高级依赖

来源:互联网 发布:阿里云备案幕布是啥 编辑:程序博客网 时间:2024/06/04 23:35

Spring中bean的依赖可以是某个类的field值,某个方法的返回值,或者某个bean的property值

 

(1)某个bean属性值的注入

    通过PropertyPathFactoryBean类完成,用来获得某个bean的属性值,获得的值可以注入其他bean,也可以直接定义成新的bean

 

   如果某个bean的某个property值是一个bean,可以用这个bean生成一个新的bean,如果是一个基本类型,也可以定义成为一个新的bean,生成一个新的bean时,并不能够确定该bean的实现类型,因此在客户应用程序中不要指定bean的类型。

   利用PropertyPathFactoryBean需要提供两个属性值

     targetBeanName:确定获取哪个bean的属性值

    propertyPath:用于指定获取目标bean的哪个属性值

 

(2)field值的依赖注入

 

    FieldRetrievingFactoryBean用来获得目标bean的field值,获得的值可以注入其他bean,也可以直接定义成新的bean

 

 (3)方法返回值的注入通过MethodInvokingFactoryBean类完成,MethodInvokingFactoryBean用来获得某个方法的返回值,该方法既可以是静态方法,也可以是实例方法。

   使用bean实例的方法返回值注入,通过MethodInvokingFactoryBean完成,需要指定一下两个属性:

      targetObject:确定目标bean,该墓可以是容器中已经有的bean,也可以是嵌套的bean

      targetMethod:确定目标方法,确定通过目标bean的哪个方法返回值注入

   如果是静态方法的返回值,则需要指定

       targetClass和targetMethod两个方法

 

高级依赖注入时,可以设置bean的属性,也可以生成新的bean

原创粉丝点击