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

Spring如何强制使用bean工厂,对于带有运行时参数的原型bean

濮阳安澜
2023-03-14

在我的spring boot应用程序中,我有一个“普通”的单例bean,它通过一个私有构造函数“自动连接”他们需要的东西。因此,不可能在代码中的任何地方调用“new”。

但我也有需要创建运行时参数的“原型”bean。为了创建这样的bean,我可以使用这种方法(惰性实例化的protype bean):带有运行时构造函数参数的Springbean

问题是构造函数被使用,因此必须是“可见的”。有没有办法在Spring中使用私有构造函数创建这样的原型bean?我想强制使用BeanFactory来创建它们。

共有1个答案

贝成业
2023-03-14

您可以尝试使用

factoryBean,public interface FactoryBean<T> {
  T getObject() throws Exception;
  Class<T> getObjectType();
  boolean isSingleton();
}

所以你可以在里面封装更复杂的逻辑

这里有一个完整的例子

 类似资料:
  • 我想在SpringJava配置中创建一个Springbean,并在运行时传递一些构造函数参数。我创建了以下Java配置,其中有一个beanfixedLengthReport,它需要构造函数中的一些参数。 但是我得到一个错误,sourceSystem无法连接,因为没有找到bean。如何用运行时构造函数参数创建bean? 我正在使用Spring 4.2

  • 问题内容: 使用Spring的Java Config,我需要使用只能在运行时获得的构造函数参数来获取/实例化作用域原型的bean。考虑以下代码示例(为简便起见,已简化): Thing类的定义如下: 注意事项name是final:它只能通过构造函数来提供,并保证不变性。其他依赖关系是Thing类的特定于实现的依赖关系,不应知道(紧密耦合到)请求处理程序实现。 这段代码与Spring XML配置完美配

  • 问题内容: 我想在 Spring Java配置中 创建一个Spring bean,并在运行时传递一些构造函数参数。我创建了以下Java配置,其中有一个bean fixedLengthReport ,它在构造函数中需要一些参数。 但是我收到错误消息, 表明 未找到bean 导致 sourceSystem 无法连接。如何使用运行时构造函数参数创建bean? 我正在使用Spring 4.2 问题答案:

  • 我使用Spring AOP在我们的应用程序中触发指标。我已经创建了一个注释,其中有一个与之关联的建议。除了在原型bean上调用方法的情况之外,所有标记为的方法都可以很好地调用该建议。 注释具有 PointCut表达式: 原型bean创建 DummyService有一个方法,叫做Dummymethod(String DummyString) 当是从其他服务调用的,不调用建议。 配置类 单例注册类 对

  • 我想将一个原型作用域bean注入到一个单例中。这个原型bean应该只为它被注入的每个单例创建一次(据我所知,默认情况下是这样的)。但是,我确实希望每次都有一个稍微不同的bean,所以我希望能够用一个自定义注释来注释注入点,这是在构造原型bean时使用的。 问题是,我如何找出注入点上有哪些注解?

  • 问题内容: 只需要一些由社区评估的东西。以下是一段代码,这是一个创建特定类型实例的简单工厂。该方法将在上下文中将bean注册为原型并返回实例。这是我第一次在运行时配置bean。您能否评价并提供反馈?先感谢您。 FLEX Sync工厂已在IoC容器中配置为单例。因此,要创建新的同步管理器,请执行以下操作: 我正在使用Spring 3.1。请查看并提供您宝贵的反馈意见。 亲切的问候。 问题答案: 这纯