gpt4 book ai didi

java - 以编程方式在 Spring 中创建对象?

转载 作者:行者123 更新时间:2023-11-29 04:01:44 25 4
gpt4 key购买 nike

在 Spring 中有没有办法以编程方式获取对象,就好像它是由 xml 文件注入(inject)的一样。

这就是我的意思

我有一个名为 securityDelegate 的类。它的实例总是由 spring 创建

<bean id="securityDelegate" class="securityBusinessDelegate" lazy-init="true">
<property name="securityServiceEJB" ref="securityServiceEJB"/>
<property name="securityService" ref="securityService"/>
</bean>

我需要在 SessionListener 中使用此类的实例,据我所知,由于这是在 servlet 级别,我无法将 securityDelegate 的实例注入(inject)到我的 HttpSessionListener 实现中。

我想做的是在我的实现中通过 java 代码检索一个实例,以执行类似这样的操作

public class SessionListener implements HttpSessionListener {

//other methods
@Override
public void sessionDestroyed(HttpSessionEvent se) {
//get an instance of securityBusinessDelegate here

securityBusinessDelegate.doSomething();
}
}

我似乎记得上次我使用 spring(3 多年前)时这是可能的,但我可能会感到困惑。也许建立一个工厂?

最佳答案

    ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(se.getServletContext.());
ctx.getBean("securityDelegate");

关于java - 以编程方式在 Spring 中创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3071680/

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