gpt4 book ai didi

java - 如何在应用程序上下文中注册现有的 bean,我从中得到的优势是什么?

转载 作者:搜寻专家 更新时间:2023-11-01 03:21:27 25 4
gpt4 key购买 nike

我是 Spring 的新手。我正在浏览 spring 文档,其中说我们可以在应用程序上下文中注册在 spring 容器外部创建的现有对象。我是这样做的

OutsideBean outsideBean = new OutsideBean();
ConfigurableApplicationContext applicationContext =
new ClassPathXmlApplicationContext("spring.xml");
// SpringBean is the bean which is defined in spring.xml
SpringBean springBean = applicationContext.getBean("springBean", SpringBean.class);
ConfigurableListableBeanFactory configurableListableBeanFactory =
applicationContext.getBeanFactory();
configurableListableBeanFactory.registerSingleton("outsideBean", outsideBean);

我这里有很多未解答的问题。

  1. 我上面的做法对吗?
  2. 即使它是正确的,这也是最好的方法吗?
  3. 如果我必须将一个 bean 注册为“原型(prototype)”怎么办?
  4. 通过在应用程序上下文中注册我的 bean,我从中获得的优势是什么?

我通读了 stackoverflow 中的许多链接,但无法理解。因此在新线程中询问它。

最佳答案

  1. 据我所知,是的
  2. 不,这不是最好的方法。最好的方法是从 Spring 配置类创建上下文,并使用 @Bean 注释方法在该配置类中创建 bean,如所述 in the documentation .或者简单地通过使用 @Component 注释您的类并让 Spring 通过类路径扫描找到您的 bean。
  3. 您指定一个范围using the @Scope annotation
  4. 优点是 bean 由 Spring 管理,因此可以由 Spring 注入(inject)到所有其他 bean 中。它也可以被任何其他 bean 注入(inject)。它可以从 AOP 中受益,例如,提供事务方法。

关于java - 如何在应用程序上下文中注册现有的 bean,我从中得到的优势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29726618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com