我有第三方库,通过将属性文件放在类路径的根目录来配置。该库正在使用getClass().getResourceAsStream("/file.properties")
加载该文件。因为它是第三方,它是不可修改的。我已将该配置文件放入外部 resources
目录中(不要误解为来自例如Maven的resources
或Gradle的目录结构。< / p>
目录结构就是这样。
如何运行/配置Spring引导以将resources
目录的内容包含到类路径中,以便getResourceAsStream
工作?
在SE应用程序中,我只需在MANIFEST中使用classpath执行java -jar myApp.jar
即可。
编辑:
只需澄清一下 - 将配置文件放在项目资源(沿源)中就完全没有了。我想保持配置外部化。
答案 0 :(得分:4)
以下是如何做到这一点:
1.-更改spring-boot-maven-plugin configuration
以启用Spring Boot PropertiesLauncher:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
</configuration>
</plugin>
</plugins>
</build>
2.-启动Spring Boot Application设置外部属性文件的位置:
java -jar -Dloader.path=PATH_TO_PROPERTIES_FOLDER spring-ms-0.0.1-SNAPSHOT.jar
假设这个文件夹:
/home/user/
|--- file.properties
|--- spring-mg-0.0.1-SNAPSHOT.jar
您应该按照以下方式启动它:java -jar -Dloader.path=/home/user spring-ms-0.0.1-SNAPSHOT.jar