Spring整合Web环境

JavaWeb三大组件及环境特点

  • 在Java语言范畴内,web层框架都是基于JavaWeb三大组件完成的,所以有必要复习一下JavaWeb组件的特点
    • 组件作用特点
      Servlet服务端小程序,负责接收客户端请求并作出响应单例对象,默认第一次访问创建,可以通过配置指定服务器启动就创建,Servlet创建完毕会执行初始化init方法,但缺点就是一个业务功能就需要配置一个Servlet
      Filter过滤器,负责对客户端请求进行过滤操作单例对象,服务器启动时就创建,对象创建完毕就执行init方法,对客户端的请求进行过滤,符合要求就放行,不符合要求就直接响应客户端,执行过滤的核心方法doFIlter
      Listener监听器,负责对域对象的创建和属性变化进行监听的根据类型和作用的不同,又可分为监听域对象创建销毁和域对象属性内容变化的,根据监听的域不同,又可分为监听Request域的,监听Session域的,监听ServletContext域的

Spring整合web环境的思路

  • 在进行Java开发时要遵循三层架构+MVC,Spring操作最核心的就是Spring容器,web层(控制层)需要注入Service(存在于Spring容器中),service需要注入DAO(Mapper),web层使用Servlet技术充当的话,需要在Servlet中获取Spring容器。
    web层代码如果都去编写创建AnnotationContext代码(获取Spring容器对象),那么配置类就被重复加载了,Spring容器也重复被创建了,不能每一次想从容器中获取一个Bean都得先创建一次容器,所以我们现在的诉求很简单,如下:
    • ApplicationContext创建一次,配置类加载一次
    • 最好在启动web服务器时,就执行第一步操作,后续直接从容器中获取bean使用即可
    • ApplicationContext的引用需要在web层任何位置都可以获取到
  • 针对以上诉求我们给出如下的解决思路
    • 在ServletContextListener的contextInitialized方法中执行ApplicationContext的创建。或在Servlet的init()方法中执行ApplicationContext的创建,并给Servlet的load-on-startup属性一个数字值,确保服务器启动Servlet就创建。
    • 将创建好的ApplicationContext存储到ServletContext域中,这样整个web层的任何位置就都可以获取到了

Spring的web开发-web层MVC框架的思想

  • MVC框架思想及其设计思路
    • Java程序员在开发过程中一般都是MVC+三层架构,MVC是web开发模式,传统的JavaWeb技术栈实现的MVC如下:
    • 原始JavaWeb开发中,Servlet充当Controller的角色,Jsp充当View角色,JavaBean充当模型(model)角色,后期Ajax异步请求流行之后,再加上现在前后端分离开发模式成熟之后,View就被原始Html+Vue替代。原始javaWeb开发中,Servlet充当Controller有很多弊端,显而易见的有如下几个
      • Servlet作为Controller的问题解决思路
        每个业务功能请求都对应一个Servlet根据业务模块区划分Controller
        每个Servlet的业务操作太繁琐将通用的行为,功能进行抽取封装
        Servlet获得Spring容器的组件只能通过客户端代码去获取,不能整合通过Spring的拓展点,去封装一个框架,从原有的Servlet完全接手过来web层的业务
    • 负责共有行为的Servlet称为前端控制器,负责业务行为的JavaBean称为控制器Controller

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值