`

使用spring中抽象的资源加载配置文件

阅读更多
   熟悉spring的人都知道, spring把配置文件等抽象为了Resource,然后对Resource做了扩充,包括文件资源,网络资源等等。加载配置文件有时候由于打包等原因导致读取不到配置文件等问题经常遇到,现在使用spring的ResourceLoader来解决这块的问题。

1. 加载文件:
     使用FileSystemResourceLoader加载文件;
2. 加载classpath文件:
      使用ClassPathResourceLoader加载文件(包括打包之后在JAR包里的配置文件);

但是这样很难记,spring做了路由, 直接使用DefaultResourceLoader就OK, 代码如下:
加载classpath下(包括jar包中的文件)
    @Test
    public void testClassPathPropertyFile() throws IOException {
        String locationPattern = "classpath:ognl/wei.properties";
        ResourceLoader loader = new DefaultResourceLoader();
        Resource resource = loader.getResource(locationPattern);
        Properties prop = new Properties();
        prop.load(resource.getInputStream());
        for (Object key : prop.keySet()) {
            System.out.println("key:" + key + ", value:"
                    + prop.getProperty((String) key));
        }
    }


加载文件:只要把String locationPattern = "classpath:ognl/wei.properties";换成String locationPattern = "file:ognl/wei.properties";就正常了
分享到:
评论

相关推荐

    Spring中使用classpath加载配置文件浅析

    在Spring框架中,classpath加载配置文件是应用开发中常见的操作。Spring框架提供了灵活的方式来加载位于classpath中的XML配置文件,这对于项目的模块化和可维护性至关重要。本文将详细分析Spring通过classpath加载...

    Spring动态加载配置文件

    在Spring框架中,动态加载配置文件是一项重要的功能,它使得开发者在开发过程中无需重启应用就能实时更新配置,极大地提高了开发效率。热部署方案是这一功能的具体应用,它允许我们在不中断服务的情况下,对应用程序...

    spring读取jar中的配置文件

    在`AppProperties`类中,我们可以定义属性的字段,并通过`@ConfigurationProperties`注解指定前缀,Spring Boot会自动从配置文件中匹配并注入值。 为了使Spring Boot能够找到JAR内的配置文件,可以在`src/main/...

    Spring 加载多个配置文件

    除了直接通过 ApplicationContext 或者 ContextLoaderListener 加载配置文件,还可以在现有的 XML 配置文件中使用 `<import>` 标签导入其他的配置文件。这种方式允许开发者在主配置文件中引用其他辅助配置文件,...

    如何加载jar包中的spring配置文件

    在Spring MVC项目中,加载jar包中的Spring配置文件是一个常见的需求,特别是在进行SSM(Spring、Spring MVC、MyBatis)整合时。SSM框架的整合通常涉及到多个配置文件的组织和管理,其中一部分配置可能会被打包到独立...

    加载jar包中的spring配置文件

    当我们构建一个基于Spring的应用时,经常需要从jar包中加载配置文件,以便管理依赖注入和其它服务。在Spring中,我们通常使用`classpath:`或`classpath*:`前缀来指定资源的位置。这两个前缀在处理多个类路径位置时有...

    Spring Junit单元测试加载配置文件失败问题

    当我们在单元测试中使用@ContextConfiguration加载配置文件时,Spring Junit将只能找到src/test/resources目录下的配置文件,无法找到src/main/resources目录下的配置文件。这将导致单元测试时无法注入类,无法正常...

    spring 所有包和配置文件

    在"spring 所有包和配置文件"这个主题中,我们将深入探讨Spring框架的主要组件、配置文件以及它们如何协同工作。 首先,Spring框架的核心在于它的容器,主要有两种:BeanFactory和ApplicationContext。BeanFactory...

    Spring4 jar包和Spring配置文件

    - `spring-context.jar`:扩展了Core Container,提供了国际化、事件传播、资源加载等功能。 - `spring-core.jar`:Core支持,包括核心工具类和IoC容器基础。 - `spring-expression.jar`:Spring表达式语言(SpEL)...

    Java 加载配置文件的方式

    如果你的项目中使用了Spring框架,那么可以利用其强大的资源管理能力来加载配置文件。Spring支持.properties、.xml甚至.yaml或.yml格式的配置文件。例如,对于.properties文件: ```java @Configuration @...

    Spring读取配置文件原理(Spring如何依赖注入的)

    1. 加载XML文件:通过`Resource`接口加载指定的XML配置文件,`ClassPathResource`是常用的实现类,可以从类路径中加载资源。 2. 解析XML:使用`DocumentBuilder`解析XML文档,获取DOM树。 3. 遍历DOM树:`...

    加载spring 文件,在web.xml中的配置

    当我们谈论“加载Spring文件,在web.xml中的配置”时,主要是指如何在Web应用启动时初始化Spring IoC(Inversion of Control,控制反转)容器并加载配置文件。 1. **使用ContextLoaderListener** `<listener>`标签...

    用enum实现单例模式的方法来读取配置文件

    // 加载配置文件 properties = new Properties(); try { properties.load(ClassLoader.getSystemResourceAsStream("config.properties")); } catch (IOException e) { e.printStackTrace(); } } public ...

    Spring 3.1配置文件示例(备忘)

    最后,资源加载是 Spring 中的一个重要方面,它允许我们在配置文件中声明并加载外部资源,如数据库连接、文件、JMS 队列等。例如,通过 `<context:property-placeholder>` 可以加载属性文件: ```xml ``` 综上所...

    spring 启动时加载不同的文件

    原始的Spring配置文件中,通常会直接指定数据库连接文件的路径: ```xml <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <value>classpath:...

    spring boot加载第三方jar包的配置文件的方法

    这个类将绑定到配置文件中的`quartz.config`前缀下的所有属性。 2. **配置文件中添加属性** 在`application.properties`中,我们需要添加相应的配置项,以供`QuartzConfigProperties`类读取。例如: ``` ...

    Spring IoC加载流程讲解

    在 XmlBeanDefinitionReader 中,我们使用一系列 loadBeanDefinitions() 方法,将配置文件封装成 Resource 的资源抽象,然后从该 Resource 中获取 InputStream 并封装成 InputSource。在 doLoadBeanDefinitions...

    Spring 配置文件 和详细笔记

    在本文中,我们将深入探讨Spring配置文件的相关知识点,以及如何有效地使用它们。 1. **XML配置文件** - **基本结构**:Spring的XML配置文件通常以`<beans>`元素作为根元素,其中包含多个`<bean>`元素,每个`...

    spring boot中配置mybatis热加载相关文件

    创建一个配置类,继承`org.springframework.boot/autoconfigure/mybatis/MybatisAutoConfiguration`,然后重写`mapperLocations`方法,引入上面配置文件中的路径,以实现XML文件的热加载。例如: ```java @...

Global site tag (gtag.js) - Google Analytics