当前位置: 首页 > 面试题库 >

在Spring的运行时动态声明bean

龙浩博
2023-03-14
问题内容

我想知道以下情况是否可能。出于测试目的,我希望在应用程序上下文中为不同的测试声明不同的模拟类。这些是使用Jersey REST客户端的验收测试。有没有办法在运行时动态声明bean?Spring是否有API允许在加载上下文后更改应用程序上下文?


问题答案:

关于第一个问题,你可以在运行时通过BeanDefinitionRegistry.registerBeanDefinition()方法声明Bean ,例如:

  BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(SomeClass.class);
  builder.addPropertyReference("propertyName", "someBean");  // add dependency to other bean
  builder.addPropertyValue("propertyName", someValue);      // set property value
  DefaultListableBeanFactory factory = (DefaultListableBeanFactory) context.getBeanFactory();
  factory.registerBeanDefinition("beanName", builder.getBeanDefinition());

也可以使用以下方式注册单例bean实例(已配置):

context.getBeanFactory().registerSingleton(beanName, singletonObject)


 类似资料:
  • 声明运行时异常的方法的指导原则是什么? 假设我调用一个抛出的第三方例程。该例程能够抛出而不声明它这样做是否允许/标准/可接受? 和往常一样,我对我的问题引起的困惑感到惊讶:-D这可能是因为我很困惑。 在下面的代码中,可调用的是一个lambda,它发出一个,这会抛出SQLException。callable.call抛出Exception。 我由此推测,程序员希望抛出一个SQLException。然

  • 本文向大家介绍在SAP ABAP中动态声明,包括了在SAP ABAP中动态声明的使用技巧和注意事项,需要的朋友参考一下 我认为对于您的实现,您可以动态地声明一个内部表。

  • 我有zuul代理,它使用属性作为资源服务器来验证令牌 我将公钥作为密钥值的一部分,但是我的应用程序正在从存储库动态地获取公钥。我正在寻找一种在运行时动态更新application.yml或application.properties文件中的这个值的方法。如果理解正确的话,更新属性值不应该重新加载应用程序。 我如何动态地做到这一点,下面是我更新proprety的尝试。

  • 问题内容: 我是python的初学者,并且满足在python脚本中动态声明/创建一些列表的要求。我需要在输入4时创建4个列表对象,例如depth_1,depth_2,depth_3,depth_4。 以便它可以动态创建列表。您能为我提供解决方案吗? 感谢你在期待 问题答案: 您可以使用或进行所需的操作。 为什么不使用清单清单?

  • 另一个,如果我有另一个应用程序使用相同的使用者组,所有的分区会被重新分配到该应用程序吗?

  • 问题内容: 我有一种需要动态更改控制器的情况,以便相应地影响范围变量。总体结构: 我在这里看到它可以在一个。可以在外面做吗?换句话说,我可以告诉angular将其读取为变量而不是字符串文字吗? 问题答案: 正如评论中所讨论的那样,具有用于处理这些情况的强大 功能/库 - (具有强大的 Wiki ) 。 这是需要开发功能块- 状态 的答案,而不是在视图/ URL中进行思考 (从首页引用) : Ang