当前位置: 首页 > 知识库问答 >
问题:

Spring——使用工厂bean类型和查找方法

沈凯康
2023-03-14

Okie正在Spring 3.1.4上运行一些第三方代码,我无法更改。代码还使用查找方法在运行时动态注入类型。这种类型属于原型范围。所有这些都是基于服务对象创建的查找方法的标准Spring用法。问题是,在3.1.4中,DefaultSingletonBeanRegistry上有很多阻塞,因为getSingleton方法中存在同步阻塞。线程转储表明,当需要基于<代码>查找方法<代码>的注入时,执行路径会到达那里,并被卡在那里,直到有时间运行为止。

我想知道是否可以使用工厂bean来创建这些原型bean,而不是将它们定义为原型bean本身。在工厂bean的工厂方法中,我将使用基于new constructor\u call()的方法来实例化值bean。并且还保持工厂bean的bean id与第三方cpring配置XML中的原型bean相同。

这种方法行得通吗?


共有1个答案

越学文
2023-03-14

并且还要保持工厂bean的bean id与第三方cpring配置XML中的原型bean相同。

我认为这行不通。如果你有两个同名的bean(你定义的那个加上第三方配置中可能定义的那个),你会得到一个异常。

但是,我认为您可以使用Bean定义注册后置处理器来删除原型范围的bean,并用您自己设计的bean替换它。

 类似资料:
  • 我是新泉。在Bean标记中,我发现了factory-method和factory-method和factory-bean之间有什么区别? 我正在使用factory-method调用我的getInstance静态方法来创建singleton对象。 工厂豆是用来做什么的? 对于给定的答复,我所理解的是 Factory-method用于调用静态方法在同一个bean类中创建对象。 Factory-bean

  • 我在Spring对bean实例化有疑问。 根据Spring参考文档,在“实例化bean”一节中提到 “容器本身通过反射式调用它的构造函数直接创建bean,有点等同于使用新运算符Java代码”。 这意味着Spring容器使用反射来创建bean。然而,在少数情况下,容器还对类使用静态工厂方法来创建bean。我所知道的容器使用静态工厂方法的唯一情况是“当构造函数是私有的”。 所以我的疑问是,既然容器使用

  • 我有一个factory-ish bean,它在启动时创建了许多对象,我希望这些对象本身就是Spring bean。 如果我创建一个对象,我可以使用工厂方法进行实例化,例如(来自Spring文档第4.3.2.3节): 如果我提前知道我有n个对象,我可以调用n个不同的方法,但是我没有——我的工厂创建了任意数量的对象,而这些对象是提前不知道的。 有人知道怎么做吗? 目标是让它们成为“合适的”Spring

  • 我一直在学习如何使用spring数据,并创建了一个非常简单的项目来测试它。文件夹结构和applicationcontext。xml显示在这里:applicationcontext。xml和文件夹结构我得到的错误显示在这里:控制台错误输出。我在类路径上有applicationContext,并声明了该类的bean,你知道我的问题是什么吗?非常感谢。 编辑:我已经更新了我的帖子,以显示主类和道类,以及

  • 我的代码是这样的: 我希望使用类似的依赖注入: 在过去的Spring中,我只需按照以下准则定义bean:http://docs.Spring.io/Spring/docs/3.1.0.m1/spring-framework-reference/html/beans.html#beans-factory-class-statist-factory-method 问题:我能在没有Spring的普通Ja

  • 我读到,在基于XML的Spring配置中bean可以继承工厂方法。 我尝试实现了它: 控制器接口: ControllerFactory类: SampleController实现: 如何更改它以使工厂方法bean继承正确实现? 将工厂方法配置复制到子bean可以正常工作: