ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javaweb项目中的classpath

2022-02-28 11:57:59  阅读:156  来源: 互联网

标签:xml WEB javaweb 项目 classpath web 文件 INF


classpath就是class的path,也就是类文件(*.class的路径)。一谈到文件的路径,我们就很有必要了解一个java项目(通常也是web项目)它在真正运行时候,这个项目内部的目录、文件的结构;这样,我们才好分析、理解classpath。

开发时期的web项目结构
在这里插入图片描述
web项目发布后的目录结构
在这里插入图片描述
经过对比,我们要注意到,开发时期的项目里,src/main/下面的java和resources文件夹都被(编译)打包到了生产包的WEB-INF/classes/目录下;而原来WEB-INF下面的views和web.xml则仍然还是在WEB-INF下面。同时由maven引入的依赖都被放入到了WEB-INF/lib/下面。最后,编译后的class文件和资源文件都放在了classes目录下。
在这里插入图片描述
在编译打包后的项目中,根目录是META-INF和WEB-INF 。这个时候,我们可以看到classes这个文件夹,它就是我们要找的classpath。
经常用到classpath的地方,就是在指定一些配置/资源文件的时候会使用到。比如说,我们在web.xml中指定springmvc的配置文件,如下图,我们使用:classpath:entry/dev/spring-mvc.xml;再比如,当我们把*Mapper.xml文件放在了main/java/…/mapping/文件夹下时,在mybatis的配置文件中配置其位置,我们使用
在这里插入图片描述

很显然,上面这2个classpath的配置,是为了告诉配置文件,去哪里寻找我们要指定的配置文件。
在第1个例子里,classpath:entry/dev/spring-mvc.xml 中,classpath就是指WEB-INF/classes/这个目录的路径。需要声明的一点是,使用classpath:这种前缀,就只能代表一个文件。

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

标签:xml,WEB,javaweb,项目,classpath,web,文件,INF
来源: https://blog.csdn.net/asgsmile/article/details/123179186

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有