无法获得Spring bean

时间:2014-06-15 14:37:06

标签: spring spring-ioc

我有一个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

1 个答案:

答案 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。不确定你的用例是什么......