关于springmvc 中的Controller使用自动装配失败的解决方法

来源:互联网 发布:sql正则 编辑:程序博客网 时间:2024/05/29 16:22

今天项目中使用SpringMVC 和Spring框架,在编写Controller控制器的时候出现@Autowired自动装配的对象不能够自动装配
问题:org.springframework.beans.factory.BeanCreationException:

@Controllerpublic class MajorController {    @Autowired//问题出在这里    private ManagerDao managerDao;    //处理登录    @RequestMapping(value="/login.do")    public ModelAndView login(Manager manager){        ModelAndView mav = new ModelAndView("index");        if(managerDao.queryIfExist(manager))        return mav;        else            return null;    }}

网上很多人说什么@Service要加在接口上,纯瞎比比。尽然很多人都出现springmvc Controller无法装配的问题,那肯定不是这个问题。

我仔细想想为什么无法装配,我就觉得Springmvc有自己的配置文件,既然在他下面的控制器中使用Spring中的Bean。那么问题的关键就是我们在spring配置路径的时候没有将Springmvc的配置文件包含进来呢?

因为我spring的路径默认的没有进行配置,所以我没有将包含SpringMVC的配置文件包含进来出现了无法装配的问题。

最后,解决方案:
在web.xml文件中加上

 <!-- 为Spring配置文件位置 默认位置可以省略 -->   <!-- 使用 Listener 加载 Spring 配置文件 -->    <listener>        <listener-class>            org.springframework.web.context.ContextLoaderListener        </listener-class>    </listener>   <context-param>    <param-name>contextConfigLocation</param-name>    <param-value>        classpath*:/applicationContext.xml        /WEB-INF/springmvc-servlet.xml <!--将Springmvc配置文件包含到spring位置下-->    </param-value>
原创粉丝点击