共计 631 个字符,预计需要花费 2 分钟才能阅读完成。
只知道把配置文件如:mybatis.xml、spring-web.xml、applicationContext.xml 等放到 src 目录(就是存放代码.java 文件的目录),然后使用“classpath:xxx.xml”来读取,都放到 src 目录准没错,那么到底 classpath 到底指的什么位置呢?
src 路径下的文件在编译后会放到 WEB-INF/classes 路径下吧。默认的 classpath 是在这里。直接放到 WEB-INF 下的话,是不在 classpath 下的。用 ClassPathXmlApplicationContext 当然获取不到。
如果单元测试的话,可以在启动或者运行的选项里指定 classpath 的路径的。
用 maven 构建项目时候 resources 目录就是默认的 classpath
classPath 即为 java 文件编译之后的 class 文件的编译目录一般为 web-inf/classes,src 下的 xml 在编译时也会复制到 classPath 下
ApplicationContext ctx = new ClassPathXmlApplicationContext(“xxxx.xml”); // 读取 classPath 下的 spring.xml 配置文件
ApplicationContext ctx = new FileSystemXmlApplicationContext(“WebRoot/WEB-INF/xxxx.xml”); // 读取 WEB-INF 下的 spring.xml 文件