SpringBoot - resource资源文件的打包配置详解(指定资源文件位置)

SpringBoot - resource资源文件的打包配置详解(指定资源文件位置),第1张

(1)默认 Spring Boot 项目结构,资源文件放置在 src/main/resources 中,测试的资源文件在 src/test/resources 中。

src/main/resources 与 src/test/resources 的区别:

(2)将项目打包后,解压 jar 可以发现原先 src/main/resources 目录下的资源文件已经被打包进来了:

(3)但有时我们的资源文件并不一定是放在 src/main/resources 目录下,比如我的项目通常会将资源文件放在 src/test/resources 目录下:

原因:根据实践经验表明,测试完后的配置项是最完整的,且经常会忘记替换正式版参数,因而选择将配置文件全部放置在 src/test/resources 目录下。

(4)又比如 mybatis 的 mapperxml 文件,我们习惯把它和 Mapperjava 放一起

(5)但上面这两种情况的资源文件,在使用 maven 打包时是不会被打包进 jar 的。这时候我们便要指定需要打包的资源文件,这个有如下两种方法可以实现。

(1)<resources> 标签位于 <build> 标签内,用于指定项目资源文件的位置。比如下面配置我们指定了 src/test/resources 也是资源文件目录:

(2)而对于写在包下的 Mapperxml 文件,我们则可以通过如下配置指明资源文件位置:

提示:其中 / 这样的写法,是为了保证各级子目录下的资源文件被打包。

(3)我们还可以通过 excludes 标签剔除不需要的资源:

(1)除了使用 <resources> 标签外,我们也可以使用 maven-resources-plugin 插件实现同样的目的。比如下面配置把 src/test/resources 目录下的资源文件打包到 classes 目录下:

(2)而对于写在包下的 Mapperxml 文件,我们也可以通过 maven-resources-plugin 插件将其打包到相应位置:

(3)使用 maven-resources-plugin 插件时,我们同样可以通过 excludes 标签剔除不需要的资源:

默认情况下,我们可以将applicationproperties或者applicationyaml(为了方便演示,本文以下均以applicationproperties介绍)放置在如下四处:

11、idea中,为了我们本地方便开发测试,我们在此处创建一个config目录,然后把applicationproperties放进去,项目正常运行。

jar包会自动生成在target目录下。

我们将生成的jar包,复制出来,到另外文件夹进行运行,比如,我现在该jar包复制到test目录下,但是这个时候是起不来,因为没有配置文件,虽然我们在idea里面是有config目录的,但是它并不没有被打包进去。我们要把config目录也复制过来,跟该jar包放在同一个目录下。

在此处,我们可以使用java -jar demo-001-SNAPSHOT来运行项目。

正常运行。

当我们将其打成jar包时,applicationproperties同样不会被打包进jar包中。需要另外复制出来和jar包放在才能正常运行。

推荐以上两种方式来放置配置文件,如果不写开发,测试,和生产好几套环境配置文件的话,就可以直接打开配置文件,改成自己需要的配置即可。

以下两种方式是将该配置文件打包在jar包里面了,即便只改一个端口号,开发人员先改配置文件,再打包,再运行。此处也记录下,并解开jar包,看下该配置文件被打包后,放置的位置。

打包后,如下图,jar包再target里面,我们寻找下applicationproperties文件。为了方便演示,我们将target目录下的demo-001-SNAPSHOTjar放到一个新目录给它解压开,找下该配置文件,我放置到了一个test目录下。

解压后:如下图,我们进入目录

发现config目录被放置在classes目录下。然后这也就让我们明白了,什么是classpath?classpath的路径到底指的是哪里,在idea中我们就把它放置在resource目录,该目录就是表示classpath。而被打成jar包后classes目录就是所谓的classpath。

所有的yaml文件,同理。

src/main/resoures这个路径下的文件是在classpath下的,比如说这下面有一个

springxml ,在webxml 里注册的话就是类似于

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:/springxml</param-value>

</context-param>

路径问题请注意你在form中的路径是"/"而这个"/"是针对于WEB服务器的根目录而不是你项目的根目录你可以看一下你发送的URL请求是没有项目名称的而在controller中设置的RequestMapping路径是以项目名为根目录

以上就是关于SpringBoot - resource资源文件的打包配置详解(指定资源文件位置)全部的内容,包括:SpringBoot - resource资源文件的打包配置详解(指定资源文件位置)、SpringBoot配置文件存放位置以及读取顺序、spring配置加载maven项目里面的src/main/resoures下的静态资源,配置路径是file:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9874632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存