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

本文介绍了解决SpringMVC Controller中@Autowired无法自动装配的问题。通过在web.xml中正确配置Spring和SpringMVC的配置文件路径,实现了Bean的正常注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

@Controller
public 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>
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值