无法使用ClassPathXmlApplicationContext查找文件

时间:2017-06-30 19:20:06

标签: java spring

我有一个名为com.voja.springtest的默认包,另一个名为com.voja.springtest.beans,我有一个beans.xml文件。

我可以使用FileSystemXmlApplicationContext

这样做
ApplicationContext context = new FileSystemXmlApplicationContext("C:/Users/Voja/Desktop/_/vj/springtest/src/main/java/com/voja/springtest/beans/beans.xml");

但是ClassPathXmlApplicationContext找不到它(并且它应该按照我正在做的教程):

ApplicationContext context = new ClassPathXmlApplicationContext("com/voja/springtest/beans/beans.xml");

为什么?

2 个答案:

答案 0 :(得分:0)

你使用错误的parh,在你的情况下它应该是:

ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:beans.xml");
  

4.7.2.2 classpath *:前缀

     

构建基于XML的应用程序上下文时,位置字符串   可以使用特殊的类路径*:前缀:

     

ApplicationContext ctx =       新的ClassPathXmlApplicationContext(“classpath *:conf / appContext.xml”);这个   special prefix指定匹配的所有classpath资源   必须获得给定的名称(在内部,这基本上是通过   一个ClassLoader.getResources(...)调用),然后合并形成   最终的应用程序上下文定义。

The Classpath*: portability classpath*: prefix

答案 1 :(得分:0)

FileSystemXmlApplicationContext通过附加关键字“file”从绝对路径中选择XML文件,也可以通过附加关键字“classpath”从类路径中获取。 您可以按以下方式访问该文件

composer install