【问题标题】:Problem in reading Spring framework doc: injecting bean to Spring at runtime阅读 Spring 框架文档时出现问题:在运行时将 bean 注入 Spring
【发布时间】:2021-10-29 14:59:22
【问题描述】:

我看不懂下面的文档语句

(...) 在运行时注册新的 bean(与 live 同步) 访问工厂)不受官方支持,可能会导致 并发访问异常,bean 中的不一致状态 容器,或两者兼而有之。

我知道它不能在运行时注入,但之前我们可以阅读文档:

除了包含有关如何 创建一个特定的 bean,ApplicationContext 实现也 允许注册在外部创建的现有对象 容器(由用户)。这是通过访问 ApplicationContext的BeanFactory通过getBeanFactory()方法, 它返回 BeanFactory DefaultListableBeanFactory 执行。 DefaultListableBeanFactory 支持这种注册 通过 registerSingleton(..) 和 registerBeanDefinition(..) 方法。

那么如何实现这种形式的注入,而不是在运行时。现在我很困惑。

【问题讨论】:

  • 你能分享你找到这些信息的链接吗?谢谢!
  • 我相信这与不遵循常规方式的bean的动态注册有关,例如GenericWebApplicationContext.registerBean()。你到底想做什么?
  • 想知道什么时候注入bean,会产生文档中描述的异常。因为我搜索动态注入的时候,谷歌都是关于如何注入的,并没有提到文档中提到的异常。所以,我只想知道什么情况下会有例外。可能是我想多了。
  • 确实是。您通常不会动态注册 bean,即使这样做,您也使用 GenericWebApplicationContext.registerBean() 而不是提到的方法(在我看来,除了简单地注册 bean 之外,它还用于其他任何事情)。

标签: java spring dependency-injection spring-bean


【解决方案1】:

我可能不是回答这个问题的合适人选,但我想给出一个已经回答得很好的链接,看看可能是你问的类似问题。

bean injected dynamically

【讨论】:

    猜你喜欢
    • 2019-05-04
    • 2013-05-21
    • 2017-03-23
    • 2012-05-21
    • 2015-01-11
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2011-12-10
    相关资源
    最近更新 更多