gpt4 book ai didi

java - Spring应用上下文

转载 作者:行者123 更新时间:2023-11-30 09:46:02 26 4
gpt4 key购买 nike

除了实现 ApplicationContextAware 接口(interface)之外,在 J6SE 中还有其他方法可以获取 spring(spring 3.0)应用程序上下文吗?

抱歉,我必须改进我的问题。我在我的 J6SE 应用程序和某些类中需要运行应用程序上下文。

最佳答案

阅读您的问题后,我知道您正在寻找 ApplicationContextAware 的替代方案,但我读到您的目标是使用 ApplicationContext 的许多类,但希望避免为所有这些类实现接口(interface)。这种方法仍然使用 ApplicationContextAware,但将其封装到一个类中以供重用。

我通常在应用程序启动时通过 web.xml 中的 ContextLoaderListener 加载配置。发生这种情况后,我将“MyApplicationContext”设置为 contextApplicationContextProvider。

<bean id="contextApplicationContextProvider" class="pkg.MyApplicationContext"></bean> 

该类必须按照您已经建议的那样实现 ApplicationContextAware:

public class MyApplicationContext implements ApplicationContextAware {

private static ApplicationContext appContext;

/* (non-Javadoc)
* @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
*/
@Override
public void setApplicationContext(ApplicationContext globalAppContext)
throws BeansException {

this.appContext = globalAppContext;

}

public static ApplicationContext getApplicationContext() {
return appContext;
}

}

这里的关键是您现在拥有对 ApplicationContext 对象的单个实例的静态引用。通过对任何类(无论是否由 spring 管理)使用静态方法调用 MyApplicationContext.getApplicationContext() 来检索它很简单。

关于java - Spring应用上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7350419/

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