Servlet上下文中使用Spring容器管理

本文详细解析了如何在Tomcat的Servlet中正确使用Spring容器管理的Bean,通过示例代码展示了如何避免NullPointerException异常,实现Service层的正常调用。关键在于将servlet容器上下文注入到Spring容器中。
摘要由CSDN通过智能技术生成
  • 问题描述
    今天发现无法在tomcat原生的servlet中使用spring容器管理的bean,调用service层时总是报NullPointerException异常
  • 解决方法
@WebServlet(name = "ServletTestDI", urlPatterns = "/tmptable")
public class ServletTestDI extends HttpServlet {

    @Autowired
    private ITmpTableService iTmpTableService;

    // 这一步是解决问题的主要代码
    @Override
    public void init(ServletConfig config) throws ServletException {
        // 将servlet容器上下文注入到spring容器中,这个类不能作用与@Resource注解
        SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("name");
        String age = request.getParameter("age");

        TmpTable tmpTable = new TmpTable(name, Integer.parseInt(age));
        iTmpTableService.insTmpTable(tmpTable);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值