我有一个Spring项目,我希望在Spring bean XML文件中定义一个特定的Spring bean。我的Spring bean XML文件位于/WEB-INF/spring/root-context.xml
。
以下是我在Service类中的代码:
ApplicationContext context = new ClassPathXmlApplicationContext("/WEB-INF/spring/root-context.xml");
这是我编译时遇到的错误:
parsing XML document from class path resource [WEB-INF/spring/root-context.xml]; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/spring/root-context.xml] cannot be opened because it does not exist
答案 0 :(得分:0)
可能WEB-INF不在您的类路径中。我建议在类路径中移动xml文件(例如src/main/resources/spring/root-context.xml
)。然后您可以使用以下命令访问它:ApplicationContext context = new ClassPathXmlApplicationContext("/spring/root-context.xml");
如果您在Web应用程序中,Spring Mvc会在WEB-INF/<the name of the dispatcher servlet>-servlet.xml
如果要从WEB-INF访问上下文,可以使用
加载它 GenericApplicationContext ctx = new GenericApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);
xmlReader.loadBeanDefinitions(new FileSystemResource(path));
更好的方法是使用WebApplicationContextUtils
或实施ApplicationContextAware
。不确定你的用例是什么......