浅谈ssm框架之理解

浅谈ssm框架之理解

spring web

spring web是spring框架中用于处理web请求的一个模块,此模块基于MVC设计思想做了具体的落地实现。它底层封装了对Servlet的技术的应用,建华路程序员对请求和响应过程中数据的处理。

核心组件:

  • DispatcherServlet:前端控制器
  • HandlerMapping:映射器对象,用于管理URL与对应controller的对应映射关系
  • Interceptors:拦截器,实现请求响应的共性处理
  • Controller:后端控制器-handler,负责处理请求的控制逻辑
  • ViewResolver:视图解析器,解析对应的视图关系(前缀+viewname+后缀)

    当我们在浏览器输入一个URL访问服务端资源时,在spring web模块应用中,其请求处理流程如下:

  1. 基于域名获取IP地址(例如:127.0.0.1)
  2. 基于IP地址找到网络中计算机(IP地址时网络中计算机的唯一标识)
  3. 基于端口找到Tomcat服务(port是计算机应用的唯一标识)
  4. Tomcat服务会基于thread并借助io读取网络http协议中请求数据
  5. Tomcat内部会创建请求(request)和响应(response)对象,用于封装请求和响应信息
  6. Tomcat会调用Filter对象request数据进行过滤
  7. Filter对request过滤之后,会将请求交给 DispatchServlet(分发器) 进行处理
  8. DispatchServlet 读取请求中的URL,并基于URL从requestMapping中找到对应的handler以及方法
  9. DispatchServlet 基于反射技术调用handler方法
  10. DispatchServlet 会将handler方法返回的view等相关信息进行封装,然后交给视图解析器进行解析
  11. ViewResolver 视图解析器为 view name添加前缀,后缀,并将model中数据填充到view中
  12. DispatchServlet 将视图解析器解析的结果封装到response对象,并将其响应到客户端。

spring

spring是一个开源的轻量级 JavaBean 容器框架。使用 JavaBean 代替 EJB ,并提供了丰富的企业应用功能,降低应用开发的复杂性。

  • 轻量:非入侵性的、所依赖的东西少、资源占用少、部署简单,不同功能选择不同的 jar 组合
  • 容器:工厂模式实现对 JavaBean 进行管理,通过控制反转(IOC)将应用程序的配置和依赖性与应用代码分开
  • 松耦合:通过 xml 配置或注解即可完成 bean 的依赖注入
  • AOP:通过 xml 配置 或注解即可加入面向切面编程的能力,完成切面功能,如:日志,事务…的统一处理
  • 方便集成:通过配置和简单的对象注入即可集成其他框架,如 Mybatis、Hibernate、Shiro…
  • 丰富的功能:JDBC 层抽象、事务管理、MVC、Java Mail、任务调度、JMX、JMS、JNDI、EJB、动态语言、远程访问、Web Service…
    两大核心框架:IOC 和 DI
  • IoC(Inversion of Cotroller)
    简单来说就是对象object的创建的权利及对象的生命周期的管理过程中交由spring框架处理,从此在开发过程中不在需要关注对象的创建和生命周期的管理,而是在需要的时候由spring框架提供,这个由spring管理对象的创建和生命周期的机制称之为控制反转。
    在Java范畴中万物皆对象,在spring中万物皆Bean。bean是spring的核心、基础,根源。

    springIoC控制反转底层实现利用率java自身提供的反射技术来创建对象。getBean参数是一个字符串,通过这个字符串,找到xml中的标签,通过bean标签的class属性拿到类全路径。

Class.forName(classPath).newInstance();

通过这种方式,spring控制了对象的生命周期,可以随时自行增强对象,如DI依赖注入,如Aop,环绕通知在类创建前后增强功能,如Transaction事务加强等。

  • DI(Dependency Injection)
    在创建对象的过程中spring可以依据对象的关系,自动把其他对象注入(无需创建对象,直接拿着使用)进来,这个过程称之为DI。

BeanFactory利用反射实现对象的创建,DI实现对象关系管理。

SpringBoot

JAVAEE 应用体系中繁重的配置、低下的开发效率、高难度的三方集成,复杂的部署流程等等一直被开发人员所诟病。Spring 这样的轻量级的资源整合框架,在实现其相对比较多的资源整合时,依旧需要大量的手动依赖管理,复杂的 XML 配置(还经常没有提示)。
现在的软件生态应用也已经形成一定的规模,系统架构正在从单体架构,分布式架构,跨越到微服务架构。随着整个架构体系变化,企业对技术的要求也在变化,现在的企业更注重技术的开箱即用,更注重技术在生态圈中的深度融合,更注重轻量级的运维。由此由此spring boot 诞生。
Spring Boot 是 Java 软件开发框架(很多人现在把它理解为一个脚手架),其设计目的是用来简化 Spring 项目的初始搭建以及开发过程。该框架使用了特定的注解方式来进行配置,从而使开发人员不再需要大量的 xml 配置。不再需要大量的手动依赖管理Spring Boot 基于快速构建理念,通过约定大于配置,开箱即用的方式,希望能够在蓬勃发展的快速应用开发领域成为其领导者。

关键特性:

  • 起步依赖
  • 自动配置
  • 健康检查-监控
  • 嵌入式服务

Mybatis

Mybatis 是一个优秀的持久层框架

  • 支持自定义SQL、存储过程以及高级映射
  • 免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作
  • 通过简单的XML或注解来配置和映射原始类型、接口和java POJO(Plain Old Java Objects,普通老式java对象)为数据库中记录

优点:

  • 消除 JDBC 中的重复代码
  • 可以在 XML 或注解中直接编写 SQL 语句,比较灵活,方便对 SQL 的优化与调整
  • SQL 写在 XML 中,与代码解耦,按照对应关系方便管理
  • XML 中提供了动态 SQL 的标签,方便根据条件拼接 SQL
  • 提供了 XML、注解与 Java 对象的映射机制
  • 与 Spring 集成比较方便

缺点:

  • 字段较多、关联表多时,编写 SQL 工作量较大
  • SQL 语句依赖了数据库特性,会导致程序的移植性较差,切换数据库困难
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值