java - new ClassPathXmlApplicationContext() 创建新的 bean 集

标签 java spring

以下列方式加载应用程序上下文是否意味着在由 ContextLoader 创建的上下文之外创建另一个上下文?

我需要为非 bean 类加载应用程序上下文。

private static ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
            "channel-integration-context.xml");

根据我的观察,它似乎创建了另一个bean context。如果是这样,什么是更好的解决方法。

请帮忙。

最佳答案

除非一些非常特殊的原因,通常没有必要创建多个 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();

关于java - new ClassPathXmlApplicationContext() 创建新的 bean 集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27501580/

相关文章:

Java:不同 session 的JMS消息传递顺序

spring - Thymeleaf 中的条件包装

java - 我如何在 Spring 3 中将 @Aspect 与 @Controller 结合起来?

java - 选择哪个框架?

java - 如果 imagefolder 的内容已更改,如何检查 java

java - okhttp 内容长度为 -1 大文件

java - 将 swagger2-ui 与 spring-boot 一起使用时出现 404

java - 在 Spring Boot 中使用 CrudRepository 检索 DiscriminatorColumn

java - android中ImageView的尺寸问题

java - 如何检索数据库中已保存的字段?