`

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

 
阅读更多
首先 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路径)进行查找.

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

或者引用其子目录下的文件,如

<param-value>classpath:context/conf/controller.xml</param-value> 


classpath*的使用:当项目中有多个classpath路径,并同时加载多个classpath路径下(此种情况多数不会遇到)的文件,*就发挥了作用,如果不加*,则表示仅仅加载第一个classpath路径,代码片段:
Java代码  收藏代码
<param-value>classpath*:context/conf/controller*.xml</param-value> 


另外:
"**/" 表示的是任意目录;
"**/applicationContext-*.xml"  表示任意目录下的以"applicationContext-"开头的XML文件。 
程序部署到tomcat后,src目录下的配置文件会和class文件一样,自动copy到应用的 WEB-INF/classes目录下
classpath:与classpath*:的区别在于,

前者只会从第一个classpath中加载,而
后者会从所有的classpath中加载 

如果要加载的资源,
不在当前ClassLoader的路径里,那么用classpath:前缀是找不到的,
这种情况下就需要使用classpath*:前缀

在多个classpath中存在同名资源,都需要加载,
那么用classpath:只会加载第一个,这种情况下也需要用classpath*:前缀

注意:
用classpath*:需要遍历所有的classpath,所以加载速度是很慢的,因此,在规划的时候,应该尽可能规划好资源文件所在的路径,尽量避免使用classpath*。


from : http://perfy315.iteye.com/blog/2009258
分享到:
评论

相关推荐

    ZK 6.5.0 Configuration Reference

    `web.xml` 是一个重要的配置文件,在 Java Web 应用程序中用于定义各种初始化参数、过滤器、监听器等。在 ZK 6.5.0 中,该文件被用来配置与 ZK 相关的各种组件。 - **ZKLoader**: 负责加载 ZK 库并初始化相关环境。...

    javax.xml.rpc相关jar包

    标题中的“javax.xml.rpc相关jar包”指的是用于处理Web服务的Java库,主要包含`javax.xml.rpc`包及其相关类。这些类和接口提供了诸如服务端点接口(Service Endpoint Interface, SEI)、服务注册、消息处理以及服务...

    JSP开发环境配置与测试.docx

    【JSP开发环境配置与测试】的文档主要针对J2EE初学者,旨在教会他们如何配置JSP开发所需的各种系统环境。以下是对该文档主要内容的详细解析: **一、实验目的** 1. **搭建Web编程环境**:确保安装并配置Java运行...

    《物联网物流仓储管理系统》部署运维手册.pdf

    2. **PATH 变量配置:** 在系统环境变量`PATH`中添加`%JAVA_HOME%\bin`路径。 3. **CLASSPATH 配置:** 设置`CLASSPATH`环境变量,通常添加`.;%JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar`。 **测试 JDK:*...

    web.xml配置解析[总结].pdf

    &lt;param-value&gt;/WEB-INF/classes/applicationContext-*.xml,classpath*:applicationContext-*.xml ``` 上述配置表示Spring将加载`/WEB-INF/classes`目录下以`applicationContext-`开头的XML配置文件,以及类路径(`...

    javax.xml.ws.Service 报错需要的包

    在Java开发中,`javax.xml.ws.Service` 是一个核心组件,属于Java API for XML Web Services (JAX-WS)的一部分,用于创建客户端和服务端的Web服务代理。报错通常表明缺少必要的依赖包,这可能会影响到程序的正常运行...

    java学习笔记,JavaWeb开发中常见问题总结

    【Java学习笔记】JavaWeb开发中常见问题总结 在JavaWeb开发中,开发者经常会遇到各种问题,这些问题涵盖从基础语法到高级设计模式的各个方面。以下是一些关键知识点的概述: 1. **Java基础知识**: - **Classpath...

    错误:找不到或无法加载主类com.xxx.xxx.Application(完美解决)

    1. **类路径配置不正确**:Java的类路径(CLASSPATH)环境变量决定了JVM查找类的位置。如果主类所在的JAR或目录没有包含在类路径中,JVM将无法找到它。确保你的类路径包含了包含主类的.jar文件或者编译后的.class...

    纯spring_web工程_例.zip

    1. **.classpath**: 这个文件是Eclipse或类似的IDE使用的,它定义了项目中的类路径,包括库(JAR文件)和其他源代码位置。在Spring Web应用中,它通常会包含Spring框架的库、Servlet API以及其他依赖。 2. **....

    ant编译java web的build.xml文件

    《Ant构建Java Web应用:深度解析build.xml》 在软件开发过程中,自动化构建工具起着至关重要的作用,它们能够帮助开发者高效地管理项目,确保代码的编译、测试和部署等流程的一致性和可靠性。Apache Ant是Java领域...

    Myeclipse配置环境

    - **配置classpath:** 为了使配置文件直接位于classpath下,需要在PackageExplorer视图中进行额外设置。 **11. 注释设置:** - **类型注释模板:** 设置类的注释模板,如包含描述、作者、公司等信息。 **12. ...

    SSH和SSI等框架常用基础配置web.xml

    在Java Web应用开发中,`web.xml`是部署描述符的核心部分,用于定义与Web应用程序相关的配置信息。对于使用SSH(Struts + Spring + Hibernate)和SSI(Struts + Spring + iBatis)等框架的应用程序而言,合理的`web....

    JAVA零基础入门和从网页搭建入门Java Web

    1. **Java环境配置**:安装JDK(Java Development Kit),配置环境变量,如JAVA_HOME、PATH和CLASSPATH,确保Java开发环境的正确搭建。 2. **Java语法基础**:学习Java的语法规则,包括数据类型(基本类型与引用...

    javaweb天下陶网络商城源码.zip

    1. **.classpath**: 这是一个Eclipse项目的配置文件,记录了项目的类路径设置,包括库和源代码目录。 2. **.mymetadata**: 可能是开发环境中关于项目的一些元数据,例如Eclipse的工作空间信息。 3. **.project**: 也...

    JAVA-WEB学习笔记.pdf

    以上是对 JAVA-WEB 学习笔记中的知识点进行的详细总结与解释。这些内容涵盖了从环境搭建到基本语法的学习,对于初学者来说是非常宝贵的学习资料。通过深入理解这些概念,可以帮助开发者更好地掌握 Java Web 开发的...

    信息: Deploying web application directory lx01

    4. **配置错误**:在`web.xml`配置文件中,可能错误地指定了监听器类名,或者`web.xml`没有正确地包含在部署的WAR文件中。 错误进一步导致了`listenerStart`阶段的失败,这意味着应用程序的启动监听器无法正确配置...

    基于java的物流配货网.zip

    1. **.classpath**:这是Eclipse或类似的Java IDE的工作空间配置文件,它定义了项目的类路径,包括编译和运行时所需的库。 2. **程序使用说明.doc**:这个文档详细介绍了如何使用这个物流配货网系统,包括登录、操作...

    java Web编程技术课堂笔记.docx

    在实际开发中,Java Web开发者需要熟练掌握这些基础知识,包括各种动态网页技术的使用,理解CS和BS架构的区别,设置开发环境,编写Servlet来处理HTTP请求,以及有效地部署和配置Web项目。通过这些知识,可以构建出...

    e3tree参考手册

    【E3.Tree参考手册】是针对Java Web开发中一种用于构建树形结构的库的详细指南,特别适用于配合动态生成静态页的场景。在这样的应用中,E3.Tree能够一次性加载所有数据,优化了页面加载效率,提高了用户体验。 ### ...

Global site tag (gtag.js) - Google Analytics