开发过程中,必不可少的需要读取文件,对于打包方式的不同,还会存在一些坑,比如以jar包方式部署时,文件都存在于jar包中,某些读取方式在开发工程中都可行,但是打包后,由于文件被保存在jar中,会导致读取失败。
这时就需要通过类加载器读取文件,类加载器可以读取jar包中的class类当然也可以读取jar包中的文件。
// 方法1:获取文件或流 this.getClass().getResource("/")+fileName; this.getClass().getResourceAsStream(failName); // 方法2:获取文件 File file = org.springframework.util.ResourceUtils.getFile("classpath:test.txt"); // 方法3:获取文件或流 ClassPathResource classPathResource = new ClassPathResource("test.txt"); classPathResource .getFile(); classPathResource .getInputStream(); // >>>>>>>>>>>>>>>> 下面方法可以读取jar包下文件 假设resources目录下有一个test.txt文件,首先获得当前的类加载器,通过类加载器读取文件。 // 方法1 InputStream io = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.txt"); // 方法2 InputStream io = getClass().getClassLoader().getResourceAsStream("test.txt");
注意:Spring工具类会对classpath路径做处理,类加载器不会对classpath做处理,因此使用类加载器读取文件,路径中不要添加classpath
原文链接:https://blog.csdn.net/weixin_38229356/article/details/80783142
相关推荐
Spring 配置中的classpath:与classpath*:的区别 Spring 配置中的classpath:与classpath*:的区别是 Spring 框架中一个常见的问题。本文主要介绍了这两种路径的区别、使用场景及注意事项,以帮助读者更好地理解和使用...
- 如果同时存在目录和jar包,且没有使用classpath*前缀,Spring默认只会加载目录下的配置文件。 2. **使用通配符**:当路径中包含通配符(如`**/*`)时,Spring将尝试加载所有匹配的配置文件。例如: - 如果配置...
为了使Spring Boot能够找到JAR内的配置文件,可以在`src/main/resources`目录下创建`META-INF/spring.factories`文件,并添加以下内容: ``` org.springframework.boot.autoconfigure.EnableAutoConfiguration=...
本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...
- 使用`spring.config.location`属性可以指定额外的配置文件位置,例如:`--spring.config.location=classpath:/module1.properties,classpath:/module2.properties`。 3. **命名规则与优先级** - Spring Boot...
这篇博客“spring mvc 读取配置文件”将深入探讨如何在Spring MVC中读取和使用配置文件,以及相关工具的应用。 首先,Spring MVC中的配置文件通常是指XML配置文件,如`applicationContext.xml`或`servlet-context....
Spring Boot默认会将`src/main/resources`目录下的内容打包进jar文件,包括静态资源(static)、模板文件(templates)和配置文件。静态资源和模板文件会被放置在一个特殊的结构中,以便于在运行时能够正确地被应用...
在标准的项目结构中,配置文件通常位于项目的`src/main/resources`目录下,这样Spring可以在类路径(ClassPath)上找到它们。然而,当配置文件位于jar包内部时,我们需要调整加载方式。 **步骤1:配置文件的组织** ...
如果属性文件位于类路径下,可以直接写类路径路径,如`@PropertySource("classpath:config.properties")`。对于动态加载,我们可以利用`Resource`接口和`ClassPathResource`类来加载运行时变更的属性文件。 除了这...
本篇将详细讲解如何在Spring 3.0的配置文件中加载Properties文件,以便在运行时动态获取和使用这些配置。 首先,我们需要一个Properties文件,例如`application.properties`,它通常放在项目的类路径根目录下。这个...
在`spring-demo09-读取properties配置文件内容`这个示例中,我们可能有一个名为`application.properties`或`config.properties`的文件,存放在项目的`src/main/resources`目录下。这个文件通常包含以下格式的键值对...
Spring框架提供了强大的属性配置管理,能够帮助开发者轻松地读取和使用properties文件中的key-value对。本教程将深入探讨如何在Spring中以不同的方式读取properties文件,以便更好地理解和应用这些配置。 首先,...
本文将深入探讨如何在Spring Boot中访问并读取`Resource`目录下的文件,特别是PDF文件。 1. **静态资源的默认配置** Spring Boot默认提供了对静态资源(如CSS、JavaScript、图片等)的处理。它会自动配置`...
这里,多个配置文件路径以逗号分隔,`ContextLoaderListener` 将在应用启动时读取并合并这些配置文件。 ##### 3.3 XML 配置文件中导入其他配置文件 除了直接通过 ApplicationContext 或者 ContextLoaderListener ...
本篇文章将详细介绍Spring Boot如何读取配置文件,以及提供一些调试示例代码,帮助你更好地理解和运用。 ### 1. 配置文件位置与优先级 Spring Boot支持多种类型的配置文件,包括`application.properties`和`...
这个文件通常位于项目的类路径(classpath)下。`Properties`类用于处理键值对,它是Java中读取配置文件的标准方式。 要获取配置文件中的数据,我们可以调用`Singleton.INSTANCE.getProperties()`。例如,如果配置...
以下是如何在Spring中从这个文件中读取这些参数的步骤: 1. **创建属性文件**: 首先,我们需要创建一个名为`jdbc.properties`的文件,通常放在项目的`src/main/resources`目录下,以便在运行时被自动加载。该文件...
在 Spring 框架中,Controller 中注入的 @Value 配置是从 servlet-context.xml 配置文件中获取的。如果要在 Controller 中注入属性配置,需要在相应的 servlet 文件中添加配置,例如: ```xml <bean class="org....
在Spring框架中,配置文件是核心组成部分,它们用于定义bean的定义、依赖关系以及各种配置信息。本篇文章将深入探讨Spring配置文件中的归类,主要包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented ...