Servlet中Autowired 注入为空解决。

本文解决在WebLogic环境下部署SpringBoot应用时,使用原有文件上传方式出现的不支持类型错误。通过引入Apache commons-fileupload和commons-io库,并在Servlet中使用SpringBeanAutowiringSupport进行bean注入,成功解决了问题。

1.部署weblogic时候,springboot原有的方式报,不支持类型错误,  Required MultipartFile parameter 'file' is not present。

改为Servlet上传,引入commons-fileupload.jar (Apache commons)、commons-io.jar。

2.再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;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值