一篇文章让你弄懂到底什么是classpath

classpath其实就是一个路径而已,我们经常在spring的配置文件中这样写:

<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />

这样配置完之后spring就知道mybatis配置文件所在的地方。

那么?这个classpath指向的地方到底是哪里呢?

image-20200314211817732.png

classpath指向的就是打war包之后的classes的位置。而classes文件夹下就是我们原项目的java文件和resources文件夹里面的内容。

所以上面的代码的意思就是在编译后的classes文件中找mybatis/SqlMapConfig.xml文件。

总结:


在编译打包后的项目中,根目录是META-INFWEB-INF 。这个时候,我们可以看到classes这个文件夹,它就是我们要找的classpath。

classpath:mybatis/SqlMapConfig.xml 中,classpath就是指WEB-INF/classes/这个目录的路径。需要声明的一点是,使用classpath:这种前缀,就只能代表一个文件

而另一种写法,classpath*:**/mapper/mapping/*Mapper.xml,使用classpath*:这种前缀,则可以代表多个匹配的文件**/mapper/mapping/*Mapper.xml,双星号**表示在任意目录下,也就是说在WEB-INF/classes/下任意层的目录,只要符合后面的文件路径,都会被作为资源文件找到。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。