我认为上面的意见可能有问题,FileSystemXmlApplicationContext
无法访问您的整个文件系统,它只能扫描您的整个项目文件夹。为了证明我的结论我举了一个例子,第一次使用ClasspathXmlApplicationContext
一切正常,第二次我将 beans.xml 文件移动到我的桌面文件夹,因此项目 hiracy 中没有 beans.xml 文件,并将 ClassPathXmlApplicationContext 更改为FileSytemXmlApplicationContext
出现问题,错误跟踪如下:
INFO: Loading XML bean definitions from file [/Users/crabime/Development/IdeaProjects/springInterview/Users/crabime/Desktop/beans.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [/Users/crabime/Development/IdeaProjects/springInterview/Users/crabime/Desktop/beans.xml]; nested exception is java.io.FileNotFoundException: Users/crabime/Desktop/beans.xml (No such file or directory)
所以 FileSystemXmlApplicationContext 只能检测当前项目的所有文件夹。例如,您config
在项目根目录下创建一个名为的目录,您可以更改主类代码,如下所示:
ApplicationContext atx = new FileSystemXmlApplicationContext("/config/beans.xml");
一切都会好起来的。因此,如果所有喜欢 sinuhepop 的人都说我认为应该有一些东西需要改变。