Web classPath
classpath,看名字,类路径,这样比如,对于java程序,就是告诉java程序哪里去找类。(java虚拟机都是通过类装载器的)想myeclipse中struts,spring,hibernate的classpath就是只他们的那些类库(jar包)的路径!
WebRoot下WEB-INF下的classes目录
classpath 和 classpath* 区别: classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找. classpath*:edu-core-spring/edu-app-context.xml表示类路径下edu-core-spring下的edu-app-context.xml文件 追问: classpath具体指哪个路径,与WEB-INF相同不? 追答: classpath是指WEB-INF文件夹下的classes目录
classpath代表你工程里面类的根目录,也就是src目录,classpath*代表src的所有目录及子目录,
classpath*:edu-core-spring/edu-app-context.xml这个表示spring在启动的时候要扫描src目录和子目录下所有的edu-core-spring下面的edu-app-context.xml文件。我觉得我已经表述明白了,希望能解决你的疑问。
首先 classpath是指 WEB-INF文件夹下的classes目录 解释classes含义: 1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml 2.存放模板文件 eg.actionerror.ftl 3.存放class文件 对应的是项目开发时的src目录编译文件 总结:这是一个定位资源的入口 如果你知道开发过程中有这么一句话:惯例大于配置 那么也许你会改变你的想法 对于第二个问题 这个涉及的是lib和classes下文件访问优先级的问题: lib>classes 对于性能的影响应该不在这个范畴
src不是classpath, WEB-INF/classes,lib才是classpath WEB-INF/ 是资源目录, 客户端不能直接访问, 这话是没错,不过现在的IDE编译器在编译时会把src下的文件(是文件,不是.java)移到WEB-INF/classes下。不过值得注意的是,spring配置文件里这个locations是uri表示,也就是说你写的jdbc.properties是当前相对路径,要访问classpath记得要这样写:<value>classpath:jdbc.properties</value> 首先 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项目的类路径,就可以理解为classes下面。因为无论这些配置文件你放在哪,编译之后如果没有特殊情况的话都直接在classes下面。
jar包的话虽然放在lib文件夹里,但实际上那些类你可以直接引用的。饮用的过程中,比如com.test.ABC,就可以直接这么写,仿佛也在classes下面一样。