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

如何在Spring中将依赖项注入到自实例对象中?

樊飞飙
2023-03-14
问题内容

假设我们有一个课程:

public class MyClass {
    @Autowired private AnotherBean anotherBean;
}

然后,我们创建了此类的对象(或者其他一些框架也创建了此类的实例)。

MyClass obj = new MyClass();

是否仍然可以注入依赖项?就像是:

applicationContext.injectDependencies(obj);

(我认为Google Guice有这样的内容)


问题答案:

你可以使用的autowireBean()方法执行此操作AutowireCapableBeanFactory。你将其传递给一个任意对象,Spring会像对待它自己创建的对象一样对待它,并将应用各种自动装配的片段。

要掌握AutowireCapableBeanFactory,只需自动连线即可:

private @Autowired AutowireCapableBeanFactory beanFactory;

public void doStuff() {
   MyBean obj = new MyBean();
   beanFactory.autowireBean(obj);
   // obj will now have its dependencies autowired.
}


 类似资料:
  • 问题内容: 假设我们有一个课程: 然后,我们创建了此类的对象(或者其他一些框架也创建了此类的实例)。 是否仍然可以注入依赖项?就像是: 问题答案: 你可以使用的方法执行此操作。你将其传递给一个任意对象,Spring会像对待它自己创建的对象一样对待它,并将应用各种自动装配的片段。 要掌握,只需自动连线即可:

  • 问题内容: 我需要使用spring框架在抽象超类中注入依赖项。 我每次实例化Abstract class B时都需要传递超类依赖关系(可以在我的项目中以100多种方式将其子类化) application.xml(Spring上下文文件)中的条目 我如何才能在application.xml中创建超类AbstractClassB的bean引用,以便可以在所有子类bean创建中使用它? 问题答案: 你可

  • 问题内容: 我想将依赖项注入。但是,我的方法不起作用。我可以看到Spring正在调用我的setter方法,但是稍后在调用when时,该属性为。 这是我的设置: ServletContextListener: web.xml :(这是文件中的最后一个侦听器) applicationContext.xml: 输出: 实现此目的的正确方法是什么? 问题答案: 我通过删除侦听器bean并为我的属性创建了一

  • 问题内容: 如何在不使用调用的情况下使用Spring将依赖项注入? 问题答案: 由于Servlet 3.0 ServletContext具有“ addListener”方法,因此可以通过如下代码添加而不是在web.xml文件中添加侦听器: 这意味着你可以正常地注入“ MyHttpSessionListener”中,并且,只要你的应用程序上下文中存在bean,就会使侦听器注册到容器中

  • 我试图使用jackson ObjectMapper将对象转换为一个具体的类,并在转换后注入依赖项。以下是一个例子: 尝试反序列化对象后(值为包含参数的映射): - 我可以从上下文中获取服务并通过默认构造函数注入它吗?

  • 问题内容: 我试图将Spring依赖项注入到JPA EntityListener中。这是我的侦听器类: 这是我的Entity类: 但是,我的依赖项(即)始终为null。 问题答案: 注入对无状态bean的依赖关系的一种方法是将依赖关系定义为“静态”,创建一个setter方法,以便Spring可以注入依赖关系(将其分配给静态依赖关系)。 将依赖项声明为静态。 创建一个方法,以便Spring可以注入它