• 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

  • 相关阅读:
    深入了解线程:并发编程的核心要点和应用
    easyrecover15数据恢复软件官网功能介绍
    递归的基本概念
    springboot:整合mybatis-plus
    [附源码]Python计算机毕业设计Django人员信息管理
    2.解构赋值
    SpringSecurity Oauth2系列 - 02 自定义 SpringBoot Starter 远程访问受限资源
    Spring Boot 加载本地 JAR 包的技术实践
    您的计算机已被Mallox勒索病毒感染?恢复您的数据的方法在这里!
    差值结构的顺序偏好
  • 原文地址:https://blog.csdn.net/weixin_64939936/article/details/133647225