Spring,使用新的ClassPathXmlApplicationContext并且无法找到applicationContext.xml和其他错误?

时间:2011-02-16 04:52:25

标签: spring dependency-injection annotations

我正在尝试按照本教程:http://www.vogella.de/articles/SpringDependencyInjection/article.html在我的应用程序中使用注释依赖项注入。我在教程中设置了bean等,然后尝试在我的MainController类中获取bean的实例(一个控制器类处理为我的spring web mvc应用程序生成特定页面)。我一直在

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在webapp / WEB-INF /和我的spring应用程序似乎正在工作,因为它在此之前处理请求等。我已经尝试将applicationContext.xml放在WEB-INF类中,但仍然没有。是否有任何解决方法使这不是以这种方式搜索路径,因为我认为它正在进行相对路径搜索。感谢您的任何建议

1 个答案:

答案 0 :(得分:2)

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

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

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

@Autowired
private BeanIRPlus beanIRPlus;