关于我们
书单推荐
新书推荐
|
Java EE互联网轻量级框架整合开发:SSM+Redis+Spring微服务(上下册) 随着移动互联网的兴起,以Java技术为后台的互联网技术占据了市场的主导地位。在Java互联网后台开发中,SSM框架(Spring Spring?MVC MyBatis)成为了主要架构,本书讲述了SSM框架从入门到实际工作的要求。与此同时,为了提高系统性能,NoSQL(尤其是Redis)在互联网系统中已经广泛应用用,为了适应这个变化,本书通过Spring讲解了有关Redis的技术应用。随着微服务的异军凸起,Spring微服务也成为时代的主流,本书也包括这方面的内容。本书主要分为7部分:第1部分对Java互联网的框架和主要涉及的模式做简单介绍;第2部分讲述MyBatis技术;第3部分讲述Spring基础(包括IoC、AOP和数据库应用),重点讲解Spring数据库事务应用,以满足互联网企业的应用要求;第4部分讲述Spring?MVC框架;第5部分通过Spring讲解Redis技术;第6部分讲解Spring微服务(Spring?Boot和Spring?Cloud);第7部分结合本书内容讲解Spring微服务实践。 ◎ 畅销书升级版,涵盖Java EE主流框架技术SSM Redis Spring微服务,快速上手开发 ◎内容全面,以实际应用为导向,取舍明确 ◎尤其对于技术的重点、难点,解释得深入浅出,案例丰富 ◎ 用Spring MVC整合MyBatis框架技术 ◎ 用Spring整合Redis在Java互联网技术上的应用 ◎ 通过对Spring Boot和Spring Cloud的讲解让大家理解Spring微服务开发 ◎ 通过秒杀讲解互联网高并发业务,通过Spring微服务实例串联本书的主要知识点 随着移动互联网的兴起以及手机和平板电脑的普及,Java开发方向发生了很大变化,渐渐从管理系统走向了互联网系统。互联网系统的要求是大数据、高并发、高响应,而非管理系统的少数据、低并发和缓慢响应。为顺应技术发展趋势,2017年夏,笔者出版了《Java EE互联网轻量级框架整合开发 SSM框架(Spring MVC Spring MyBatis)和Redis实现》一书,比较全面和系统地介绍了Java EE的开发知识,受到了业内的广泛肯定。但是随着微服务的崛起,以及技术的更替,该书的知识点已经开始过时,更新已是必然,这就是本书出版的原因。 移动互联网的新要求 高并发:举个例子,大公司企业ERP应用,有1万名员工使用,同时在线的用户可能只有数百人,而操作一个业务的同一个数据的可能只有几个人,其系统一般不会存在高并发的压力,使用传统程序和数据库完全可以应付。在互联网中,对于一件热门的商品,可能刚一上市就有成千上万的请求到达服务器,要求服务器瞬间执行数以万计的数据操作,对性能要求高,操作不当容易造成网站瘫痪,引发网站的生存危机。 高响应:企业管理系统可以缓慢处理一些业务,而在高并发的互联网系统中,却不可以,按照互联网的要求一般以5秒为上限,超过5秒后响应,则用户体验不好,影响用户忠诚度,因此往往需要在高并发和大数据量的场景下实现。 数据一致性:由于高并发,多个线程对同一数据同时访问,需要保证数据的一致性,比如电商网站的金额、商品库存不能出错,还要保证其性能不能太差,这是在管理系统中不会出现的场景。 技术复杂化:在互联网中流行许多新技术,比如常见的NoSQL(Redis、MongoDB),微服务(Spring Boot和Spring Cloud)等技术。 为什么选择SSM框架 Redis Spring微服务的开发模式 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 Boot和Spring Cloud)的内容。其中,Spring Boot是基于Spring技术进行封装的,更易于开发Spring应用,而Spring Cloud则以Spring Boot的形式对一些分布式组件进行封装,更易于理解和使用。 基于以上原因,SSM(Spring Spring MVC MyBatis)已经成为Java互联网时代的主流框架,而Spring微服务则更容易使用,加之Redis缓存已经成了主流的NoSQL技术,笔者愿意将自己所掌握的知识分享给大家,为目前奋斗在SSM、Spring微服务和Redis战线上的同行们奉献一本有价值的参考书,给准备进入这个行业的新手一定的帮助和指导。 本书的特点 实用性:全书内容来自笔者多年互联网实践开发经验,理论结合实际。 理论性:突出基础理念,结合设计模式阐述框架的实现原理和应用理念,让读者知其然也知其所以然。 与时俱进:介绍框架技术,与当前互联网企业保持同步,比如全注解搭建SSM框架、Spring微服务和Redis应用,方便读者把技术应用到实际工作中去。 突出热点和重点:着重介绍MyBatis实践应用,Spring数据库及事务应用,使用Spring介绍Redis实践应用、Spring微服务、高并发和锁等互联网热门技术的热点和重点。 性能要求突出:这是移动互联网的要求,因为互联网面对大数据和高并发,体现互联网企业真实需求。 本书的内容安排 本书基于一线企业的实际需求,介绍了Java互联网流行的框架技术,内容全面,以实际应用为导向,取舍明确,尤其对于技术的重点、难点,解释得深入浅出,案例丰富,本书分为7部分。 第1部分,讲解Java EE和框架基础,让读者对每一门技术的主要作用都有所了解。介绍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部分,讲解Spring微服务,微服务的概念,通过对Spring Boot和Spring Cloud的讲解让大家理解Spring微服务的开发。 第7部分,通过Spring微服务实例串联本书的主要知识点,让大家体验Java后端开发的主流技术;注重性能分析,介绍一些常见处理高并发的方法,以满足企业的真实需要。 和读者的约定 为了方便论述,我们进行以下约定。 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.5.3,Spring的版本是5.2.1.RELEASE,Redis的版本是5.0.8,在实践的过程中读者需要注意版本之间的差异。 本书的目标读者 阅读本书,读者要掌握以下知识:Java编程基础和数据库基础知识(本书以互联网数据库MySQL为主)。本书以互联网企业广泛使用的技术框架为中心讲解Java EE和Spring微服务技术,从入门到实践,适合有志于从事Java EE和Spring微服务开发的各类人员阅读,通过学习本书能够有效提高技术能力,并将知识点应用到实际的企业工作中去。本书也可以作为大中专院校计算机专业的教材,帮助在校学生学习企业实际应用,当然读者也可以把本书当作一本工作手册进行查阅。 致谢 本书的成功出版,要感谢电子工业出版社的编辑们,没有他们的辛苦付出,没有本书的成功出版,尤其是孙学瑛编辑,写作过程中她给了我很多的建议和帮助,为此付出了很多时间和精力。 在撰写本书期间,我去了四川旅游,得到了校友刘家成的接待,和他聊起了创作本书的事情,他也自愿加入了本书的创作和更新,也帮助我编写和完善了部分章节的内容;同时得到前同事谭茂华的协助,他以过硬的技术为我排除了不少错误,给了我很多很好的建议,并撰写了一些很好的实例;在此对他们的辛苦付出表示诚挚的感谢。 互联网技术博大精深,涉及的技术门类特别多,甚至跨越行业,技术更新较快。撰写本书时笔者也遇到了一些困难,由于涉及的知识十分广泛,对技术要求更高,出错的概率也大大增加,正如没有完美的程序一样,也没有完美的书,一切都需要一个完善的过程,所以尊敬的读者,如果对本书有任何意见或建议,欢迎发送邮件到ykzhen2013@163.com,或者在笔者的博客(http://blog.csdn.net/ykzhen2015)上留言,以便于本书的修订。 杨开振 杨开振,技术畅销书作家,精通Java 互联网技术开发和实践,拥有十余年一线企业开发经验,著有业内畅销书《深入浅出MyBatis 技术原理与实战》《深入浅出Spring Boot 2.x》和《Spring Cloud微服务和分布式系统实践》等。写作特点是技术点详尽准确、文字浅显易懂,立志于用书普及基础技术。刘家成,资深软件工程师,曾任职Synnex中国、亚信国际等,在电信、分销领域有丰富经验,在Java高并发和Spring生态有深刻的理解。 第1部分 入门和技术基础
你还可能感兴趣
我要评论
|