2011-02-16 59 views
2

我正在试图遵循本教程:http://www.vogella.de/articles/SpringDependencyInjection/article.html在我的应用程序中使用注释依赖注入。我在教程中设置了bean等,然后试图在我的MainController类(控制器类为我的spring web mvc应用程序生成特定页面)中获取一个bean的实例。我一直收到春天,使用新的ClassPathXmlApplicationContext,并得到错误无法找到applicationContext.xml和其他?

SEVERE: Servlet.service() for servlet spring threw exception 

    java.io.FileNotFoundException: class path resource [WEB-INF/applicationContext.xml] cannot be opened because it does not exist 

我在我的MainController这样做:

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 

    BeanFactory factory = context; 
    BeanIRPlus beanirPlus = (BeanIRPlus) factory 
      .getBean("BeanIRPlus"); 
    IRPlusInterface irPlus = beanirPlus.getIRPlus(); 

我已经搜查,搜查就这个问题和尚未找到能解决我的问题的答案。我的applicationContext in webapp/WEB-INF /和我的spring应用程序似乎在工作,因为它在这之前处理请求等。我曾尝试将applicationContext.xml放入WEB-INF类中,但仍然没有任何结果。是否有任何解决方法可以使它不像这样搜索路径,因为我认为它执行相对路径搜索。感谢您的任何建议

回答

2

不是一个直接的答案,但在这里。

您引用的教程是针对独立应用程序中的依赖注入而不是Web应用程序。在web应用程序的情况下,spring会自动加载上下文文件并初始化bean。所以你不需要MainController中指定的任何行。

相反,你可以这样做,在你的控制器中使用beanIRPlus bean。

@Autowired 
private BeanIRPlus beanIRPlus; 
+0

哇确定那是一个大开眼界:),感谢您的帮助,我现在要尝试没有那..所以实际上,我怎么如果我需要调用一个方法就可以使用MainController内豆?任何意见/资源对此表示赞赏,我一直花费数小时查看有关此事的事情,但有时会错过重要的事情,例如我刚才所做的事情,因为我还在学习。谢谢 – Rick 2011-02-16 06:05:46

相关问题