编码技巧——Springboot工程打jar包后启动时读取jar包外的资源文件
在Spring Boot项目中,当你打包应用为一个jar文件时,所有的资源文件都会被打包进这个jar中。如果你需要在运行时读取jar包外的资源文件,可以使用Spring的资源访问机制,或者使用Java的java.nio.file.Paths
和java.net.URL
类来加载这些文件。
以下是一个示例代码,展示如何在Spring Boot应用中加载jar包外的配置文件:
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ExternalConfigLoader {
public static void main(String[] args) {
// 尝试从jar包同级的文件系统目录读取配置文件
File externalConfig = new File("config.properties");
if (externalConfig.exists()) {
System.out.println("Loading config from external file...");
// 处理文件读取逻辑
} else {
System.out.println("Loading config from classpath...");
Resource resource = new ClassPathResource("config.properties");
try (InputStream inputStream = resource.getInputStream()) {
// 处理文件读取逻辑
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在这个例子中,我们首先尝试从jar包外部加载config.properties
文件。如果文件存在于jar包外的同名文件夹中,我们就使用该文件。如果不存在,我们就从classpath中加载它。这样,无论应用是以jar还是传统的war部署,都可以灵活地在运行时读取配置。
评论已关闭