web.xml 配置中classpath: 与classpath*的区别

web.xml 配置中classpath: 与classpath*:的区别

web.xml 配置中classpath: 与classpath*:的区别 - Felixyao的日志 - 网易博客 http://blog.163.com/ygplpr@126/blog/static/389691162012116102750608/

首先 classpath是指 WEB-INF文件夹下的classes目录

解释classes含义:
1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml
2.存放模板文件 eg.actionerror.ftl
3.存放class文件 对应的是项目开发时的src目录编译文件
总结:这是一个定位资源的入口

如果你知道开发过程中有这么一句话:惯例大于配置 那么也许你会改变你的想法

对于第二个问题
这个涉及的是lib和classes下文件访问优先级的问题: lib>classes
对于性能的影响应该不在这个范畴

classpath 和 classpath* 区别:

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

web.xml 中 classpath 写法说明  

web.xml 中 classpath 写法说明 - 骑着企鹅去北极的日志 - 网易博客 http://blog.163.com/lby67224262@126/blog/static/171415341201343093943525/

简单理解,classpath就是代表  /WEB-INF /classes/  这个路径(如果不理解该路径,就把一个web工程发布为war包,然后用winrar查看其包内路径就理解啦)

 

常用的场景:

在SSH架构中,配置Spring的上下文环境:

<!-- Spring Configures -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:applicationContext.xml
        </param-value>
    </context-param>

 

里面的

classpath:applicationContext.xml  

也可以使用  /WEB-INF /classes/ applicationContext.xml  代替

 

注意:

classpath 和 classpath* 区别:

classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找 ---- 够深入的吧