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

如何使用Spring手动自动关联bean?

秦博达
2023-03-14

我有一个beanB,我必须自己创建它(使用new B()),它有@Autowire@PostConstruct注释。

如何让Spring处理我的beanA中的这些注释?

相关问题:

  • 在Spring,我可以从自动编织的豆子里自动编织新的豆子吗?

共有2个答案

梅耘豪
2023-03-14

另一个选项是让spring容器自动创建一个新bean(而不是自己用new关键字创建一个新实例)。在需要以编程方式实例化新对象的类中,插入AutowireCapableBeanFactory的实例:

@Autowired
private AutowireCapableBeanFactory beanFactory;

然后:

B yourBean = beanFactory.createBean(B.class);

容器将像往常一样注入带有@Autowired注释的实例。

李跃
2023-03-14

Aaron,我相信您的代码是正确的,但我使用了以下代码:

B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean( bean );
factory.initializeBean( bean, "bean" );

第一个方法将处理@autowire字段和方法(但不是经典属性)。第二种方法将调用后处理(@PostConstruct和任何定义的BeanPostProcators)。

如果bean实现了ApplicationContextAware接口,则可以在bean中获取应用程序上下文。

 类似资料:
  • 我是Spring的新手,我正在尝试自动连接一个通用DAO。不幸的是,我遇到了一个错误。我试图根据它搜索信息,但大多数解决方案都声明使用@Qualifier注释,我认为这与我想要实现的目标背道而驰。 所以下面的一些代码(我将摆脱类参数,一旦我处理当前问题): 道 服务 和下面抛出的错误:

  • 有没有人可以在条件下自动装配bean? 下面是一个例子。我们有两个FileManager实现。其中一个实现应该在依赖属性“platform”中初始化。通过Archaius处理属性。 。 。 。 此代码无效。主要原因是ArchaiusProperties bean在条件匹配时未初始化。在条件中使用ArchaiusProperties bean之前,有没有方法初始化它?

  • 问题内容: 答案可能很简单:如何在Spring Security中手动注销当前登录的用户: ? 问题答案: 在Servlet 3.0容器中,Spring注销功能与Servlet集成在一起,你只需在上调用。仍然需要编写有效的响应内容。 根据文档(Spring 3.2): HttpServletRequest.logout()方法可用于注销当前用户。 通常,这意味着将清除SecurityContext

  • 我正在使用LoadRunner来测试一个应用程序的性能,这是一个基于Siebel CRM的应用程序。我面临的问题是我无法获得SRN号码,这是唯一的每一个会话。 下面是我用来捕获SRN的代码 如果我按SRN`搜索,我可以看到SRN值。 下面是我从服务器得到的响应。我设置边界正确(我相信是这样),但不能得到SRN值。

  • 我正在尝试使用new关键字创建一个组件的新实例。组件类有另一个类的自动布线。在第一类中,它有一个调用第二类的方法。代码如下: First.java 第二Java语言 一个pplication.java 我能够使用依赖注入来训练解决方案。我只是想这样做。 提亚