spring 中对servlet @Autowired 注入service报空指针

本文介绍了一种解决Servlet中无法直接使用@Autowired注解来注入Spring管理的Bean的方法。通过重写Servlet的init方法并调用SpringBeanAutowiringSupport.processInjectionBasedOnServletContext方法,可以实现在Servlet中正确注入所需的Spring Bean。

再servlet用@Autowired 注入service参数,会报空指针,注入的bean找不到。这是因为我们的bean都是归spring容器管理的,但是servlet单独有一个容器,归tomcat管理,所以这样注入是有问题的。

在网上找了好几种方法,都有问题,后来找到一种最简单的。

在servlet中重写init方法

       @Override
public void init(ServletConfig config) throws ServletException {  
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext()); 


然后再注入你需要的bean

       @Autowired

private UserServiceDefault userDefaultService;


这样就可以用了


评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值