温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
Java
EE互联网轻量级框架整合开发
SSM框架Spring
MVC+Spring+MyBatis和Redis实现
EE
互联网
轻量级
框
内 容 简 介 随着移动互联网的兴起,以 Java 技术为后台的互联网技术占据了市场的主导地位,而在 Java 互联网后台开发中,SSM 框架(Spring+Spring MVC+MyBatis)成为了主要架构,本书以此为焦点从入门到实际工作要求讲述了 SSM 框架的技术应用;与此同时,为了提高系统性能,NoSQL(尤其是 Redis)在互联网系统中已经广泛使用,为了适应这个变化,本书通过 Spring 讲解了有关 Redis 的技术应用,这样更加贴近实际学习和工作的需要。本书主要分为 6 个部分,第 1 部分对 Java 互联网的框架和主要涉及的模式做初步简介;第 2 部分讲述 MyBatis 技术;第 3 部分讲述 Spring 基础(包括 IoC、AOP 和数据库应用),重点讲解 Spring 数据库事务应用,以满足互联网企业的应用要求;第 4 部分,讲述 Spring MVC 框架;第 5 部分,通过 Spring技术的应用,讲解 Redis 技术;第 6 部分,讲解 SSM+Redis 实践应用,通过互联网高并发如抢票、抢红包等场景,使用全注解的方式讲解 SSM 框架的整合,以及高并发与锁的应用和系统性能优化。本书结合企业的实际需求,从原理到实践全面讲解 SSM+Redis 技术应用,无论你是 Java 程序员、SSM 应用和研究人员,还是 Redis 应用人员、互联网开发人员,都可以从本书中收获知识。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 Java EE 互联网轻量级框架整合开发:SSM 框架(Spring MVC+Spring+MyBatis)和 Redis 实现杨开振等著.北京:电子工业出版社,2017.7 ISBN 978-7-121-31847-4 .J .杨 .JAVA语言程序设计 数据库基本知识 .TP312.8 TP311.138 中国版本图书馆 CIP 数据核字(2017)第 130168 号 策划编辑:汪达文 责任编辑:徐津平 印 刷:北京京科印刷有限公司 装 订:三河市皇庄路通装订厂 出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7871092 1/16 印张:43 字数:1100 千字 版 次:2017 年 7 月第 1 版 印 次:2017 年 7 月第 1 次印刷 印 数:3000 册 定价:119.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:(010)51260888-819,。前 言 随着移动互联网的兴起以及手机和平板电脑的普及,Java 开发方向发生了很大变化,渐渐从管理系统走向了互联网系统。互联网系统的要求是大数据、高并发、高响应,而非管理系统的少数据、低并发和缓慢响应。为顺应技术发展趋势,2016 年春季笔者写了一本关于 MyBatis 的著作深入浅出 MyBatis 技术原理与实战,作为国内第一本关于 MyBatis技术的著作,该书受到了业内的广泛肯定。与此同时,电子工业出版社编辑汪达文给了我一个很好的建议,她建议写一本 Java 合集,这更贴近开发工作的实际需求。在移动互联网兴起的时代,Spring+Spring MVC+MyBatis(SSM)的 Java 组合已经成为时代的主流,伴随着 NoSQL(缓存)的广泛应用,Redis 成了主要的 NoSQL 工具,这些都是当今移动互联网最为流行的技术,于是笔者打算竭尽所能写一本 SSM+Redis 的合集,这就是本书创作的缘起。移动互联网的新要求?高并发:举个例子,大公司企业 ERP 应用,有 1 万名员工使用,同时在线的用户可能只有数百人,而操作一个业务的同一个数据的可能只有几个人,其系统一般不会存在高并发的压力,使用传统程序和数据库完全可以应付。在互联网中一件热门的商品,比如新版小米手机,可能刚一上市就有成千上万的请求到达服务器,要求瞬间执行数以万计的数据操作,对性能要求高,操作不当容易造成网站瘫痪,引发网站的生存危机。?高响应:企业管理系统可以缓慢处理一些业务,而在高并发的互联网系统中,却不可以,按照互联网的要求一般以 5 秒为上限,超过 5 秒后响应,用户体验不好,从而影响用户忠诚度,而这些往往需要在高并发和大数据量的场景下实现。?数据一致性:由于高并发,多个线程对同一数据同时访问,需要保证数据的一致性,比如电商网站的金额、商品库存不能出错,还要保证其性能不能太差,这是在管理系统中不会出现的场景。Java EE 互联网轻量级框架整合开发SSM 框架(Spring MVC+Spring+MyBatis)和 Redis 实现 IV?技术复杂化:在互联网中流行许多新技术,比如常见的 NoSQL(Redis、MongoDB),又如 MQ、RPC 框架、ZooKeeper、大数据、分布式等技术。为什么选择 SSM 框架+Redis 的开发模式 首先,Struts2 框架和 Spring 结合,多年来改变不了臃肿的老毛病,更为严重的是近年来多次出现的漏洞问题,使得其名声和使用率大降。这个时候 Spring MVC 框架成了新一代 MVC 框架的主流。它原生于 Spring 框架,可以无缝对接 Spring 的核心技术。与 Struts不同,它的流程模块化,没有那么多臃肿的类,所以互联网应用的框架大部分使用的是Spring MVC。其次,目前企业的 Java 应用中,Spring 框架是必须的,Spring 的核心是 IoC(控制反转),它是一个大容器,方便组装和管理各类系统内外部资源,同时支持 AOP(面向切面编程),这是对面向对象的补充,目前广泛用于日志和数据库事务控制,减少了大量的重复代码,使得程序更为清晰。因为 Spring 可以使模块解耦,控制对象之间的协作,所以 Spring框架是目前 Java 最为流行的框架,几乎没有之一。最后,对于 Hibernate 而言,笔者感慨最多,在需要存储过程或者复杂 SQL 时,它的映射关系几乎完全用不上,所有的问题都需要自己敲代码处理。作为全映射的框架,它的致命缺点是没有办法完全掌控数据库的 SQL,而优化 SQL 是高并发、高响应系统的必然要求,这是互联网系统的普遍特性,所以 Hibernate 在互联网系统中被排除了。而另一个持久层框架 MyBatis,它需要编写 SQL、提供映射规则,不过它加入了动态 SQL、自动映射、接口编程等功能使得它简单易用,同时支持 SQL 优化、动态绑定,并满足高并发和高响应的要求,所以它成为最流行的 Java 互联网持久框架。NoSQL 的成功在于,首先它是基于内存的,也就是数据放在内存中,而不是像数据库那样把数据放在磁盘上,而内存的读取速度是磁盘读取速度的几十倍到上百倍,所以NoSQL 工具的速度远比数据库读取速度要快得多,满足了高响应的要求。即使 NoSQL 将数据放在磁盘中,它也是一种半结构化的数据格式,读取到解析的复杂度远比数据库要简单,这是因为数据库存储的是经过结构化、多范式等有复杂规则的数据,还原为内存结构的速度较慢。NoSQL 在很大程度上满足了高并发、快速读/写和响应的要求,所以它也是Java互联网系统的利器。于是两种NoSQL的工具Redis和MongoDB流行起来,尤其是Redis已经成为了主要的 NoSQL 工具,本书会详细介绍它的常用方法。基于以上原因,Spring+Spring MVC+MyBatis 已经成了 Java 互联网时代的主流框架,而 Redis 缓存已经成了主流的 NoSQL 技术,笔者愿意将自己所掌握的知识分享给大家,为目前奋斗在 SSM 和 Redis 战线上的同行们奉献一本有价值的参考书,给一些准备进入这个行业的新手一定的帮助和指导。前 言 V 本书的特点 全书具备五大特点。?实用性:全书内容来自于笔者多年互联网实践开发工作,理论结合实际应用。?理论性:突出基础理念,结合设计模式阐述框架的实现原理和应用理念,让读者知其然也知其所以然。?与时俱进:介绍最新框架技术,与当前互联网企业保持同步,比如全注解搭建 SSM框架和 Redis 的应用,使得读者能够把最新技术应用到实际的工作中去。?突出热点和重点:着重介绍MyBatis实践应用,Spring数据库及事务应用,使用Spring介绍 Redis 实践应用、高并发和锁等互联网热门技术的热点和重点。?性能要求突出:这是移动互联网的要求,因为互联网面对大数据和高并发,体现互联网企业真实需要。本书的内容安排 本书基于一线企业的实际应用要求,介绍了 Java 互联网最流行的框架技术,内容全面,以实际应用为导向,取舍明确,尤其对于技术的重点、难点解释得深入浅出,案例丰富,具体来说本书在体例上分为六大部分。第 1 部分,首先讲解基础,让读者对 SSM 框架里的每一门技术的主要作用有所了解。然后介绍 SSM 框架的主要设计模式,它们有助于从底层深入理解框架。第 2 部分,讲解 MyBatis 的基础应用,包括其主要组成、配置、映射器、动态 SQL,并且深入 MyBatis 的底层运行原理和插件,详细讨论它们的高级应用。第 3 部分,讲解 Spring IoC 和 Spring AOP。掌握 Spring 如何通过 IoC 管理资源,然后通过设计模式讨论 AOP 的实现原理及其使用方法、实践。讨论 Spring 对数据库的支持,如何整合 MyBatis,并且着重讨论了 Spring 数据库事务的相关内容,包括数据库隔离级别和传播行为的应用。第 4 部分,讲解 Spring MVC 主要的流程、HandlerMapping 的应用、控制器 Controller、处理适配器(HandlerAdapter)、视图和视图解析器,然后讨论传递参数、注解、数据校验、消息转换和国际化等应用。第 5 部分,掌握 NoSQL 的优势和应用方法,掌握 Redis 的常用数据类型和主要命令,以及一些基本的特性(比如事务)和用法,并教会你在 Java 和 Spring 环境中使用它。第 6 部分,SSM 框架+Redis 的实战,通过全注解的方式搭建 SSM 框架,讲解 Redis应用,并展现了互联网的核心问题高并发和锁的问题。介绍了通过悲观锁、乐观锁和Redis Lua 语言方案来解决高并发和锁的问题。Java EE 互联网轻量级框架整合开发SSM 框架(Spring MVC+Spring+MyBatis)和 Redis 实现 VI 和读者的约定 为了方便论述,我们进行以下约定。?import 语句一般不出现在代码中,主要是为了缩减篇幅,可以使用 IDE 自动导入,除非是笔者认为有必要的场景、一些重要的实例它才会出现在代码中。?本书的例子大部分使用附录 A 中的数据模型,附录 A 中有基本的论述和对应的 SQL语句。?对于普通的 POJO,笔者大部分都会以“/*setter and getter*/”代替 POJO 的 setter和 getter 方法,类似这样:public class Role private Long id;private String roleName;private String note;/*setter and getter*/读者可以用 IDE 生成这些属性的 setter 和 getter 方法,这样做主要是为了节省篇幅,突出重点,也有利于读者的阅读。当然在一些特别重要的和使用广泛的场景,比如 MyBatis入门、SSM 框架整合等场景才会给出全量代码,以便读者进行编码学习。?在默认情况下,笔者使用互联网最常用的 MySQL 数据库,当使用其他数据库时,笔者会事先加以说明。?本书采用 MyBatis 的版本是 3.4.1,Spring 的版本是 4.3.2,Re