如何在Spring(Spring Boot)中将外部配置资源包括到类路径中?

Ant*_*sss 3 spring spring-boot

我有通过将属性文件放置在类路径的根上来配置的第三方库。该库getClass().getResourceAsStream("/file.properties")用于加载该文件。由于是第三方,因此无法修改。我已经将该配置文件放入了外部 resources目录(不要误解为resourcesMaven或Gradle的目录结构。

目录结构是这样的。

迪尔狭窄

如何运行/配置Spring Boot以将resources目录的内容包含到类路径中,以便可以getResourceAsStream正常工作?

在SE应用程序上,我只需要java -jar myApp.jar对MANIFEST中的classpath进行操作即可。

编辑:

只需说明一下-将配置文件放入项目资源(以及资源​​)中就没了重点。我想保持配置外部化。

cod*_*ent 5

这是您可以执行的操作:

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>
Run Code Online (Sandbox Code Playgroud)

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 
Run Code Online (Sandbox Code Playgroud)

您应该像这样启动它: java -jar -Dloader.path=/home/user spring-ms-0.0.1-SNAPSHOT.jar