SSM 框架集-01-详细介绍-入门问题篇

SSM 框架集-01-详细介绍-入门问题篇

刚开始了解 SSM,首先先解决几个基础问题html

1.什么是 SSM 框架集?web

  • SSM(Spring+SpringMVC+MyBatis)框架集由 Spring、MyBatis 两个个开源框架整合而成(SpringMVC 是 Spring 中的部份内容)。常做为数据源较简单的 web 项目的框架。
  • SSM 是标准的 MVC 模式,将整个系统划分为表现层,controller层,service层,DAO层四层。使用 spring MVC 负责请求的转发和视图管理。spring实现业务对象管理,mybatis 做为数据对象的持久化引擎。
  • 若是新手刚开始可能不知道从什么开始学,首先明白学习大的两部分 spring,mybatis ,建议先学习 spring,能够到 W3cschool Spring 教程,而后再学习 mybatis,能够在 mybatis 官网文档 学习。而后我也会一直在博客更新学习笔记,一块儿学习吧

2.什么是 Spring?spring

  • Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协做的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协做的对象组成。因此开发一个应用除了要开发业务逻辑以外,最多的是关注如何使这些对象协做来完成所需功能,并且要低耦合、高内聚。业务逻辑开发是不可避免的,那若是有个框架出来帮咱们来建立对象及管理这些对象之间的依赖关系。可能有人说了,好比“抽象工厂、工厂方法设计模式”不也能够帮咱们建立对象,“生成器模式”帮咱们处理对象间的依赖关系,不也能完成这些功能吗?但是这些又须要咱们建立另外一些工厂类、生成器类,咱们又要而外管理这些类,增长了咱们的负担,若是能有种经过配置方式来建立对象,管理对象之间依赖关系,咱们不须要经过工厂和生成器来建立及管理对象之间的依赖关系,这样咱们是否是减小了许多工做,加速了开发,能节省出不少时间来干其余事。Spring框架刚出来时主要就是来完成这个功能。
  • Spring框架除了帮咱们管理对象及其依赖关系,还提供像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力,还能帮我管理最头疼的数据库事务,自己提供了一套简单的JDBC访问实现,提供与第三方数据访问框架集成(如Hibernate、JPA),与各类Java EE技术整合(如Java Mail、任务调度等等),提供一套本身的web层框架Spring MVC、并且还能很是简单的与第三方web框架集成。从这里咱们能够认为Spring是一个超级粘合平台,除了本身提供功能外,还提供粘合其余技术和框架的能力,从而使咱们能够更自由的选择到底使用什么技术进行开发。并且不论是JAVA
    SE(C/S架构)应用程序仍是JAVA EE(B/S架构)应用程序均可以使用这个平台进行开发。让咱们来深刻看一下Spring到底能帮咱们作些什么?

3.Spring能帮咱们作什么?sql

Spring除了不能帮咱们写业务逻辑,其他的几乎什么都能帮助咱们简化开发:数据库

  • (1) 传统程序开发,建立对象及组装对象间依赖关系由咱们在程序内部进行控制,这样会加大各个对象间的耦合,若是咱们要修改对象间的依赖关系就必须修改源代码,从新编译、部署;而若是采用Spring,则由Spring根据配置文件来进行建立及组装对象间依赖关系,只须要改配置文件便可,无需从新编译。因此,Spring能帮咱们根据配置文件建立及组装对象之间的依赖关系。
  • (2) 当咱们要进行一些日志记录、权限控制、性能统计等时,在传统应用程序当中咱们可能在须要的对象或方法中进行,并且好比权限控制、性能统计大部分是重复的,这样代码中就存在大量重复代码,即便有人说我把通用部分提取出来,那必然存在调用仍是存在重复,像性能统计咱们可能只是在必要时才进行,在诊断完毕后要删除这些代码;还有日志记录,好比记录一些方法访问日志、数据访问日志等等,这些都会渗透到各个要访问方法中;还有权限控制,必须在方法执行开始进行审核,想一想这些是多么可怕并且是多么无聊的工做。若是采用Spring,这些日志记录、权限控制、性能统计从业务逻辑中分离出来,经过Spring支持的面向切面编程,在须要这些功能的地方动态添加这些功能,无需渗透到各个须要的方法或对象中;有人可能说了,咱们可使用“代理设计模式”或“包装器设计模式”,你可使用这些,但仍是须要经过编程方式来建立代理对象,仍是要耦合这些代理对象,而采用Spring 面向切面编程能提供一种更好的方式来完成上述功能,通常经过配置方式,并且不须要在现有代码中添加任何额外代码,现有代码专一业务逻辑。因此,Spring 面向切面编程能帮助咱们无耦合的实现日志记录,性能统计,安全控制。
  • (3) 在传统应用程序当中,咱们如何来完成数据库事务管理?须要一系列“获取链接,执行SQL,提交或回滚事务,关闭链接”,并且还要保证在最后必定要关闭链接,多么可怕的事情,并且也很无聊;若是采用Spring,咱们只需获取链接,执行SQL,其余的都交给Spring来管理了,简单吧。因此,Spring能很是简单的帮咱们管理数据库事务。
  • (4) Spring还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,并且本身也提供了一套JDBC访问模板,来方便数据库访问。
  • (5) Spring还提供与第三方Web(如Struts、JSF)框架无缝集成,并且本身也提供了一套Spring MVC框架,来方便web层搭建。
  • (6) Spring能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(好比缓存框架)。编程

  • Spring能帮咱们作这么多事情,提供这么多功能和与那么多主流技术整合,并且是帮咱们作了开发中比较头疼和困难的事情,那可能有人会问,难道只有Spring这一个框架,没有其余选择?固然有,好比EJB须要依赖应用服务器、开发效率低、在开发中小型项目是宰鸡拿牛刀,虽然发展到如今EJB比较好用了,但仍是比较笨重还须要依赖应用服务器等。设计模式

4.什么是 SpringMVC?缓存

  • SpringMVC 是 Spring 中的部份内容,SpringMVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
  • 不少应用程序的问题在于处理业务数据的对象和显示业务数据的视图之间存在紧密耦合,一般,更新业务对象的命令都是从视图自己发起的,使视图对任何业务对象更改都有高度敏感性。并且,当多个视图依赖于同一个业务对象时是没有灵活性的。
  • SpringMVC 是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即便用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助咱们简化开发,SpringMVC也是要简化咱们平常Web开发

5.什么是 MyBatis?安全

  • MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎全部的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录

6.为何要用 MyBatis?服务器

  • 简单易学:自己就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,经过文档和源代码,能够比较彻底的掌握它的设计思路和实现。
  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。经过sql基本上能够实现咱们不使用数据访问框架能够实现的全部功能,或许更多。
  • 解除sql与程序代码的耦合:经过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提升了可维护性。
  • 提供映射标签,支持对象与数据库的orm字段关系映射;提供对象关系映射标签,支持对象关系组建维护;提供xml标签,支持编写动态sql。

更多文章连接:SSM 框架集

相关文章
相关标签/搜索