获取Spring中的资源路径

问题描述 投票:0回答:1

我正在开发一个项目,我需要下载构建的资源文件夹。我想将资源文件夹的路径声明为配置属性,然后在我的服务中访问它。如何在配置中获取并添加正确的资源文件夹路径?

我尝试直接使用这个,但看起来是一个错误的方法 - String resourcesPath = getClass().getResource("/../../resources/").getPath();

我想将其添加为配置属性。我怎样才能做到这一点?

java spring spring-mvc spring-data maven-resources-plugin
1个回答
0
投票

通常,

resources
文件夹内容会打包在应用程序的
jar
(或
war
)文件中。

当您说 path 时,您的意思是文件系统位置,因为不会有一个文件系统位置,除非应用程序的运行时执行将 jar 内容提取到运行时文件系统中(这是不正常的)。

一种方法,如果您知道所需的所有资源的路径,您可以从类路径资源文件夹中访问它,这样您就可以将资产以二进制流的形式取出并重新构建具体文件。

另一种方法是在运行时获取应用程序的 .jar 文件的文件句柄,然后以编程方式探索 jar 文件内容(或解压缩它)。 但打包的应用程序通常会将已编译的 .class 文件和资源文件夹中的任何内容放置在“同一路径结构内”,这意味着隔离“构建的资源”将很困难。 如果您想要的所有资源都是不同的路径,而不仅仅是根中的“松散”资源,那么这种方法会更容易。 总的来说,我认为你需要以不同的方式处理这个问题;除了资源文件夹的正常打包之外,找到一个构建插件,将资源打包成 zip 等,并安排该 zip 文件打包到应用程序内。 不幸的是,我不知道有这样的插件......

© www.soinside.com 2019 - 2024. All rights reserved.