加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – 使用实例工厂方法动态创建原型bean

发布时间:2020-12-15 01:30:37 所属栏目:大数据 来源:网络整理
导读:我有一种情况,我想通过工厂对象动态创建一个对象,但需要通过spring上下文创建对象,以允许自动装配依赖项.我知道有很多其他方法可以解决这个问题 例如使用服务定位器模式 但是如果可能的话我想这样做. 想象一下,我有两个对象: class OuterObject { List 我想

我有一种情况,我想通过工厂对象动态创建一个对象,但需要通过spring上下文创建对象,以允许自动装配依赖项.我知道有很多其他方法可以解决这个问题 – 例如使用服务定位器模式 – 但是如果可能的话我想这样做.

想象一下,我有两个对象:

class OuterObject {
    List

我想创建一个工厂,它可以完成以下工作:

class OuterObjectFactory {
    private innerObject = new InnerObject();

    public OuterObject construct(params){
         OuterObject o = new OuterObject();
         List

我的spring-context.xml看起来像:

但是,这不起作用.只创建了一个innerObject,我希望它的行为类似于scope =“prototype”.如果我将scope =“prototype”添加到bean定义中:

然后它似乎创建了许多innerObjects,但它们没有正确连线.我的同事认为发现文档here意味着工厂bean只用于初始化bean,但我没有发现那么明显.

如果有人能在这里清理我的理解,我会很感激,甚至可能会建议一种更好的方法来建模工厂模式,而不是我正在做的.

谢谢!

最佳答案
我想你所说的是你有一个单独的工厂,你希望它创建新的对象,你希望每次都有一个新的对象完全依赖注入.旧方法是您在上面链接的方法注入.新的(可以说更清晰的方式)是使用Scoped Proxy.您可以使用annotations或regular config,但想法是围绕bean创建代理(例如InnerObject).当您需要对它的引用时,spring将自动为您提供插入了相应依赖项的新副本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读