导读:为什么选择 SSM 框架开发项目
导读:为什么选择 SSM 框架开发项目
订阅RSS,随时关注

>>当前位置: 首页 > 技术优势

导读:为什么选择 SSM 框架开发项目

发布时间:2019-04-12 12:32:04

商家详细信息:

  SSM 框架由 SpringMVC、Spring 和 Mybatis 三大开源框架整合而成,所以了解该框架需先从这三个框架着手。

  Spring 是 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 创建。它解决了业务逻辑层和其他各层的松耦合问题,并将面向接口的编程思想贯穿整个系统应用。简单来说,Spring 是一个分层的 JavaSE/EE Full-Stack(一站式) 轻量级开源框架。为什么说 spring 是分层、一站式、轻量级的框架呢?

  首先看分层。JavaEE 经典的 MVC 三层结构为表现层、业务层、持久层,Web表现层负责页面数据显示、页面跳转调度,例如 JSP/Servlet、SpringMVC;Service业务层负责业务处理、功能逻辑和事务控制,例如 Service、JavaBean、EJB;而持久层Dao则负责数据存取和封装,及与数据库打交道,例如 JDBC、Hibernate、Mybatis。

  至于轻量,则是指从大小与开销两方面而言,Spring都是轻量的。完整的 Spring 框架可以在一个大小只有 1MB 多的 Jar 文件里发布。并且 Spring 所需的处理开销也是微不足道的。Spring 的出现解决了 EJB 臃肿、低效、繁琐复杂、脱离现实的情况。而且使用 Spring 编程是非侵入式的。Spring 应用中的对象不依赖于 Spring 的特定类。

  Core 和 Beans 模块提供了 Spring 最基础的功能,Core 模块是核心,为其他模块提供支持,包括 Spring 的核心工具类。Beans 是 Spring 管理实体类 Bean 的主要模块,提供 IoC 控制反转和依赖注入 DI。控制反转即将控制权由原来的程序员自己管理交给 Spring 来管理,依赖注入就是注入对象实例,有四种方式,即接口注入、setter 方法注入、构造器注入和注解注入。

  Context 上下文模块,主要基于 Core 和 Beans 模块,Context 模块的 Context 包继承了 Beans 包的功能,还增加了国际化(I18N)、事件传播等,Context 上下文模块,还包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。

  Expression Language,表达式语言模块,又称 SpEL,提供了在运行期间查询和操作对象图的强大能力。包含五个主要特性:(1)使用 Bean 的 ID 引用 Bean;(2)调用方法和访问对象的属性;(3)对值进行算术,关系和逻辑运算;(4)正则表达式匹配;(5)集合操作。

  DI 是指在 Spring 框架创建 Bean 对象时,动态地将依赖对象注入到 Bean 组件。简单的说,就是将另外一个 Bean 对象动态地注入到另一个 Bean 中。

  AOP 采取横向抽取机制,取代了传统纵向继承体系重复性代码的编写方式(例如性能监视、事务管理、安全检查、缓存、日志记录等)。

  AOP 基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,通过代理对象,调用增强功能的代码,从而对原有业务方法进行增强。例如可以在插入 User 对象之前进行打印日志,请看下面的代码示例。

  Spring 为 Web 表现层提供了一个优秀的框架 SpringMVC。和其他 Web 框架一样,也是基于 MVC 的设计理念,此外,它采用了松耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。

  SpringMVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,无需任何接口,同时,SpringMVC 还支持 REST 风格的 URL 请求。此外,SpringMVC 在数据绑定、视图解析、本地化处理及静态资源处理上都有许多不俗的表现。它在框架设计、扩展性、灵活性等方面全面超越了 Struts、WebWork 等 MVC 框架,从原来的追赶者一跃成为 MVC 的领跑者。

  Mybatis 的前身是 iBatis,Apache 的一个开源项目,在2010年这个项目从 Apache 迁移到 Google Code 改名为 Mybatis。Mybatis 是一个类似于 Hibernate 的 ORM 持久化框架,支持普通 SQL 查询、存储过程以及高级映射。Mybatis 通过使用简单的 XML 或注解用于配置和原始映射,将接口和 POJO 对象映射成数据库中的记录。由于 Mybatis 是直接基于 JDBC 做了简单的映射包装,所以从性能角度来看

  上面我们对 SSM 的各个组成部分做了详细介绍,接下来,我们将通过 SSM 与 SSH 的对比,带大家进一步深入了解 SSM。

  机制:SpringMVC 的入口是 Servlet,Struts2 的入口是 Filter, 两者的实现机制不同;

  性能:SpringMVC 稍微比 Struts 快些。SpringMVC 是基于方法的设计,而 Struts2 是基于类,每发一次请求都会实例化一个 action,每个 action 都会被注入属性,而 SpringMVC 基于方法,粒度更细。

  参数传递:Struts2 在接受参数时,可以用属性来接受参数,这就说明参数可被多个方法共享。SpringMVC 是基于方法的设计,传递参数是通过方法形参。多个方法间不能共享。

  设计思想上:Struts2 更加符合 OOP 的编程思想,SpringMVC 就比较谨慎,在 Servlet 上扩展。

  难易程度:Hibernate 的真正掌握要比 Mybatis 难些。Mybatis 框架相对简单容易上手。

  对象管理:Hibernate 是完整的对象/关系映射解决方案,它提供了对象状态管理的功能,使开发者不需要关心底层数据库系统的细节。而 Mybatis 在这一块没有文档说明,用户需要自己对对象进行详细的管理。

  优势对比:Mybatis 可以进行更为细致的 SQL 优化,可以减少查询字段。Hibernate 数据库移植性很好,Mybatis 的数据库移植性不好,不同的数据库需要些不同的 SQL。

  综上所述,在性能方面 SSM 框架要优于 SSH 框架,这也是越来越多互联网企业选择 SSM 框架的主要原因。而对于业务逻辑复杂,不太在乎执行效率的传统行业,一般会选择使用 SSH 框架。所以本达人课会选择 SSM 框架来开发,其中应用到的技术将适用于大部分的互联网企业。



推荐