SpringBoot项目中的 ClassPath路径指的是哪个路径?

针对SpringBoot项目来说,ClassPath指的是哪些路径?

一直对classpath这个概念理解得不是很清晰,今天在网上看了博客专门研究了一下,做一点记录。

  1. 首先,对于SpringBoot项目来说,classpath指的是src.main.java和src.main.resources路径以及第三方jar包的根路径,存放在这两个路径下的文件,都可以通过classpath作为相对路径来引用;
    SpringBoot项目中的 ClassPath路径指的是哪个路径?_第1张图片

  2. src.main.java和src.main.resources路径下的内容,在执行了Maven的Compile后,都会被放到target.classes目录下,包括.class文件,静态资源文件(图片,CSS,jQuery文件等);

  3. **对于第三方jar包,如何体现其也是classpath路径之一?**执行Maven的package生命周期后,将得到的jar包解压,得到以下目录
    SpringBoot项目中的 ClassPath路径指的是哪个路径?_第2张图片
    在BOOT-INF文件夹下,有以下内容:
    SpringBoot项目中的 ClassPath路径指的是哪个路径?_第3张图片
    分别打开来看看:

  4. 首先是classes文件夹,内容如下图。classes文件夹中包含的是src/main/java和src/main/resources这两个路径下的内容(由于src/main/resources/static文件夹和src/main/resources/template文件夹是空的,所以没有打包进来)。
    在这里插入图片描述

  5. 再是lib文件夹,内容如下图。里面是项目依赖的第三方jar包
    SpringBoot项目中的 ClassPath路径指的是哪个路径?_第4张图片

  6. 然后是classpath.idx文件。从文件名可知这个文件与classpath有关,打开之后的内容如下。这是项目所引入的jar包的报名(也可以理解为根路径)。猜测SpringBoot会根据这个文件将jar包根路径包含到classpath中。
    SpringBoot项目中的 ClassPath路径指的是哪个路径?_第5张图片

总结

由上可知,SpringBoot项目的classpath包含三个:

  1. src/main/java路径
  2. src/main/resouces路径
  3. 第三方jar包的根路径
    在这三个路径下的文件,都可以认为是放在了classpath路径下的,可以使用classpath关键字作为相对路径的来引用。不过这些并没有得到验证,仅仅是我根据网上的博客做的总结。

参考:https://www.cnblogs.com/eden-libinglin/p/13831822.html

你可能感兴趣的:(SpringBoot,java,java)