以下列方式加载应用程序上下文是否意味着除了ContextLoader创建的上下文之外还要创建另一个上下文?
我要求为非bean类加载应用程序上下文。
private static ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"channel-integration-context.xml");
根据我的观察,它似乎创建了另一个bean上下文。如果是这样,那么什么是更好的解决方法。
请帮忙。
答案 0 :(得分:1)
除非有一些非常特殊的原因,否则通常没有必要创建多个ApplicationContext
。
您可以创建一个单身人士:
public class ApplicationContextWrapper {
private static ApplicationContext INSTANCE = null;
private ApplicationContextWrapper() {
}
public static ApplicationContext getIntance() {
if (INSTANCE == null) {
//note you can add more Spring XML configuration filenames in this array
String[] contexts = new String[] {"channel-integration-context.xml"};
INSTANCE = new ClassPathApplicationContext(contexts);
}
return INSTANCE;
}
}
您可以将其用于:
private static ApplicationContext applicationContext = ApplicationContextWrapper.getInstance();