简单解释:以ssm项目为例,classpath指向的就是打war包之后的classes的位置。而classes文件夹下就是原项目的java文件和resources文件夹里面的内容。
1.web项目工程结构
2.打包
src/main/下面的java和resources文件夹都被(编译)打包到了生产包的WEB-INF/classes/目录下;而原来WEB-INF下面的views(jsp)和web.xml则仍然还是在WEB-INF下面。同时由maven引入的依赖都被放入到了WEB-INF/lib/下面。最后,编译后的class文件和资源文件都放在了classes目录下。
打包前:
打包后:
3.classpath 和 classpath*区别
classpath:dev/spring-mvc.xml 中,classpath就是指WEB-INF/classes/这个目录的路径。使用classpath:这种前缀,就只能代表一个文件。
classpath*:/mapper/Mapper.xml,使用classpath:这种前缀,则可以代表多个匹配的文件;/mapper/*Mapper.xml,双星号**表示在任意目录下,也就是说在WEB-INF/classes/下任意层的目录,只要符合后面的文件路径,都会被作为资源文件找到。