servlet中调用注入spring管理的dao(转)

今天做大型仪器的的时候遇到的问题,转下为了以后能用

http://blog.csdn.net/jiyingying_up/article/details/44803585

我们用spring的依赖注入可以将dao注入到action中,然后我们就可以直接调用了dao中的方法了,可是servlet不是由spring容器管理,所以在servlet中不能注入dao类,也就不能用dao中的方法。

下面是实现方法:

private UserDao userDao;  
      
        public void init() throws ServletException {  
        super.init();  
          
        ServletContext servletContext = this.getServletContext();  
          
        WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);  
          
        userDao = (UserDao)ctx.getBean("userDao");  
    }  

在servlet中加入私有变量UserDao,然后在servlet的init()方法中初始化一下即可用。

public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

需要加上get 和set方法。

这是就可以在servlet中调用dao层的内容

原文地址:https://www.cnblogs.com/ScarecrowAnBird/p/7792105.html