zoukankan      html  css  js  c++  java
  • 解决Spring中singleton的Bean依赖于prototype的Bean的问题

    在spring bean的配置的时候,可能会出现一个singleton的bean依赖一个prototype的bean。因为singleton的bean只有一次初始化的机会,所以他们的依赖关系页只有在初始化的时候被设置,在这个时候同样会初始化一个prototype的bean,这样就会导致本来是prototype的bean成了singleton了,这种矛盾的解决方案有两个:

      1.放弃使用依赖注入,在需要的时候主动向容器申请。

      2.利用方法注入

     第一种方法显然是不合理的~~~

    方法注入通常使用lookup方法,可以让spring容器重写容器中bean的抽象或具体的方法,返回该bean。

    具体实现方式:  

      Person 定义为singleton,依赖的Address定义为prototype


    首先在Person中定义一个抽象方法,例如 public abstract Address getAddress(); 当然这个方法的名字可以自定义,该方法不用去实现。相应的该类Person也会变成abstract。

    在beans.xml中的配置:

    注:bean默认的scope是singleton,所以上面省略了配置。

      <lookup-method>

        name :指定要lookup的方法,就是上面自定的方法

        bean:关联要生成的bean.

    这样以来就解决了不同作用域bean的依赖出现的矛盾问题。

  • 相关阅读:
    grep 精确匹配
    @ARGV
    同时查看多个文件
    R画双y轴图
    R画饼图
    linux的sort排序
    $0
    QQ图
    Config::Std模块安装
    R语言做正态分布检验
  • 原文地址:https://www.cnblogs.com/plxx/p/5345542.html
Copyright © 2011-2022 走看看