使用spring MVC 时,如何在控制器中获取WebApplicationContext 呢?
WebApplicationContext 是干什么的?
WebApplicationContext 有以下方法:getBean() ,传入bean的id就可以从上下文中获取bean的实例.
使用场景:
一般情况下,我们可以是@Resouce注解,来依赖注入,并不需要手动获取bean的实例再setter.
但是抽象出一个公共的父类Controller,里面使用了泛型T,此时dao的名称我们不知道,我们确定Dao的名称是T 的首字母小写再加上字符串"Dao",所以此时不能使用@Resouce注解,就需要先获取WebApplicationContext,然后通过getBean 方法获取dao实例.
获取WebApplicationContext 的方法:
WebApplicationContext webApp=RequestContextUtils.getWebApplicationContext(request , request.getSession().getServletContext());
以下摘取自spring MVC官方文档: