sping 配置文件的 路径 classpath

昨天晚上开始到现在一直纠结于classpath路径配置。  web.xml内,相关路径配置一直出问题,看了好多资料终于理出头绪了。


首先,web.xml文件内配置的路径是指  编译 后的文件路径,不是工程文件内代码的位置,比如 src/main/resource 下的config文件夹内xml文件,事实上发布时候用的不是这个文件,而是build后生成的文件,一般工程属性内,可以看到build path ,  src/main/resource   src/main/j'ava 等都是默认打包到  target/classes内的。所以我们xml配置文件里要写的路径就是build后编译到classes文件夹下的路径。

target/classes也就是classpath所指向的路径。    当你执行 tomcat:run后就可以去查看以下target文件夹下的classes文件夹就会比较清楚了。


对此,classpath  可以直接理解为src/main/resource或者 src/main/java的根目录,因为两者都是默认打包进去的,然后写上子文件夹就行。对于根目录下的文件,切记!!classpath:冒号后面不要有空格!!!!不然死活找不到文件的,瞎搞了一个小时才发现。。。。


总结:

1 wen.xml等配置文件,需要的是编译 发布 后的路径(想想也是,发布的是war包,而不是你的工程源代码,所以build后xml等资源文件都会copy到发布的文件夹内去),所以不要纠结与项目工程结构,而是要关注buildpath内的配置

2 eclipse 建立的maven 项目,src/main/resource   src/main/java 已经默认build到  target/classes内了,所以项目build后直接去文件夹下就能找到文件,没有的话肯定配置有问题

3 比如 src/main/resource 下有config文件夹,里面有 applicationContext.xml。   默认发布到target/classes内,所以web.xml的上下文配置文件路径只要写 classpath:config/applicationContext.xml 就可以。    针对直接放在src/main/resource根目录下的文件,千万注意classpath:后不要有空格。


暂时写到这边,以后继续补充

你可能感兴趣的:(sping 配置文件的 路径 classpath)