SpringIOC容器和WEB容器的相通问题探讨

问题引入

  1. set方式依赖注入

在经典的JAVAWEB三层中,Servlet去调用Service实现类,进行逻辑操作,学习Spring以后将最初的new 对象操作变成了依赖注入方式,以下是set方式注入代码:
在这里插入图片描述
在这里插入图片描述

  • 运行然后报空指针异常,service为Null,是因为注入失败?并不是。
    在这里插入图片描述
  • 原因详解:其实注入成功了,但是在浏览器发送请求时,请求的是WEB容器中的Userservlet而非Spring容器中的那个Userservlet,所以报NULL指针异常!
    在这里插入图片描述

解决方案

  • servlet的init初始化方法中获取springIOC容器中的对象(原理:其实就是在WEB容器中的servlet的init方法中去主动的getBean即获取usi对象)
    在这里插入图片描述
  • 用Spring注解自动装配进行依赖注入
    (原理:注解本身就是在WEB容器中那个servlet上标注的,他代替了springXML所配置的用于servlet依赖注入的Bean,注解会自动去IOC容器中寻找符合该对象的Bean给WEB容器中的这个servlet进行依赖注入,该注解默认是bytype,也可以自己设置其他方式)
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值