Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Spring(Spring引导)中将外部配置资源包括到类路径中?_Spring_Spring Boot - Fatal编程技术网

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

如何在Spring(Spring引导)中将外部配置资源包括到类路径中?,spring,spring-boot,Spring,Spring Boot,我有第三方库,它是通过将属性文件放在类路径的根上配置的。该库正在使用getClass().getResourceAsStream(“/file.properties”)加载该文件。由于它是第三方,它是不可修改的。我已将该配置文件放入外部资源目录(不要与Maven或Gradle目录结构中的资源相混淆) 目录结构是这样的 如何运行/配置Spring boot以将资源目录的内容包含到类路径中,以便getResourceAsStream可以工作 在SE应用程序上,我只需使用清单中的类路径执行java-

我有第三方库,它是通过将属性文件放在类路径的根上配置的。该库正在使用
getClass().getResourceAsStream(“/file.properties”)
加载该文件。由于它是第三方,它是不可修改的。我已将该配置文件放入外部
资源
目录(不要与Maven或Gradle目录结构中的
资源
相混淆)

目录结构是这样的

如何运行/配置Spring boot以将
资源
目录的内容包含到类路径中,以便
getResourceAsStream
可以工作

在SE应用程序上,我只需使用清单中的类路径执行
java-jarmyapp.jar
,就可以了

编辑:


只需一句澄清的话-将配置文件放在项目资源(以及源代码)中没有抓住要点。我希望将配置外部化。

以下是如何做到这一点:

1.-更改您的
spring boot maven插件配置
以启用spring boot属性Launcher:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <layout>ZIP</layout>
            </configuration>
        </plugin>
    </plugins>
</build>

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

您是如何构建和运行您的应用程序的?您能展示您的项目的树结构吗?@AndyWilkinson build-gradle,run-CLI
java-jar(…)
配置应该保持外部化。这解决不了任何问题。您的假设看起来可以接受,我会尝试将其应用于Gradle,我会让您知道它是否有效。很好,我用Maven对其进行了测试,效果非常好。我想您将其应用于Gradle不会有任何问题。
/home/user/
     |--- file.properties
     |--- spring-mg-0.0.1-SNAPSHOT.jar