classpath和classpath*的区别

问题:新建Dynamic Web Project时修改了default output folder,这时候在web.xml中配置DispatcherServlet的时候,如果使用

<param-value>classpath:springmvc.xml</param-value>

,系统启动时将提示springmvc.xml文件找不到的错误,当配置成

<param-value>classpath*:springmvc.xml</param-value>

时,能找到springmvc.xml文件。原因是:

概念解释:

classpath : 即项目中WEB-INF下面的classes目录;

应用:

【01】 src路径下的文件在编译后会放到WEB-INF/classes路径下。默认的classpath是在这里。直接放到WEB-INF下的话,是不在classpath下的。用ClassPathXmlApplicationContext当然获取不到的。

【02】 如果单元测试的话,可以在启动或者运行的选项里指定classpath的路径的。用maven构建项目时候resource目录就是默认的classpath

【03】 classPath即为java文件编译之后的class文件的编译目录一般为web-inf/classes,src下的xml在编译时也会复制到classPath下
(1)ApplicationContext ctx = new ClassPathXmlApplicationContext("xxxx.xml"); //读取classPath下的spring.xml配置文件
(2)ApplicationContext ctx = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/xxxx.xml"); //读取WEB-INF 下的spring.xml文件

区别:

classpath 和 classpath* 区别:
  classpath:只会到你的class路径中查找找文件;
  classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,567评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,085评论 6 342
  • 本章聊一聊ServletContext 3.0规范中定义的注解以及在web应用中使用的框架和库的可插拔性的提升。 ...
    Lucky_Micky阅读 11,274评论 0 3
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,967评论 18 399
  • 去年10月,《小王子》电影刚刚上映,我和孩子就立刻跑去电影院观看。尽管豆瓣等媒体对此电影的评分很高...
    鹏力阅读 3,772评论 2 2