发表于2024-12-24
Java EE互联网轻量级框架整合开发 SSM框架(Spring MVC+Spring+MyBatis)和Redis实现 pdf epub mobi txt 电子书 下载
涵盖Java EE主流框架技术SSM+Redis,快速上手开发
用Spring MVC整合MyBatis框架技术
用Spring整合Redis在Java互联网技术上的应用
通过秒杀、抢红包讲解互联网高并发业务
随着移动互联网的兴起,以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应用人员、互联网开发人员,都可以从本书中收获知识。
杨开振,拥有十余年一线Java开发工作经验,热衷于Java互联网技术方向研究,目前从事Java互联网技术在线教育,著有畅销书《深入浅出MyBatis技术原理与实战》。
周吉文,高级工程师,曾获广东省科技进步一等奖,曾任国家“863”计划项目软件组组长,担任珠海市第二人民医院信息部主任多年,有丰富的项目实施和管理经验。
梁华辉,资深Java开发专家,有丰富的企业级应用及Web项目的开发经验。对软件设计模式和代码整洁方面有深入理解,对Spring、Hibernate等主流开源框架有深入研究。
谭茂华,资深Java开发专家,拥有十余年供应链管理、金融、物联网等行业大型系统软件开发经验。热衷于软件架构、软件研发过程控制、Java开源技术(尤其是Spring体系技术)的研究。
本书从基础理论讲起,菜鸟可以由此登堂入室,功力再上一层楼。结合源码分析,深入浅出,轻松一窥底层原理,适合大侠修炼内功。书中案例非常切合互联网应用的实际,对架构设计有很好的借鉴和参考意义。
——前华为架构师、腾讯高级工程师
代继红
高速数据流和高并发访问是目前互联网应用数据处理层面临的严峻挑战。本书对互联网时代业界流行的“SSM+Redis”的Java互联网技术进行了详细介绍,给需要搭建高效互联网应用的企业或个人提供了应对挑战的利器。本书内容由浅入深,逻辑清晰,代码丰富,可操作性强,是一本既适合新手入门又适合高手修炼的技术宝典。
——广西大学教授
许嘉
本书从基础理论到实际应用,全面深入地介绍了互联应用开发的流行技术,熟读本书必能成为互联网应用开发的行家里手。
——深圳某知名互联网金融公司高级Java软件工程师
姚润泉
本书从实用的角度出发,详细阐述了一个互联网系统框架搭建的过程。针对Spring、Spring MVC、MyBatis这三大主流框架的机制原理、环境搭建、系统开发的方方面面都有详细描述。针对目前比较流行的Redis缓存及NoSql数据库进行了详细介绍,这是本书的亮点。
——安润普科技有限公司软件研发副总监兼云平台架构师
叶剑飞
通过多年对Web后端架构的理解和实践经验,作者从框架底层原理展开,结合示意图、示意表、程序实例片段,深入剖析了SSM框架,同时对SSM框架和主流技术的结合进行了实例介绍。本书适应的读者层次很广,既适合初学者入门,也适合老手深造。
——泰坦软件系统有限公司项目总监
聂凯如
本书通过精要的描述、清晰的图示和恰当的示例,由浅入深阐述当前流行的Java EE互联网框架技术原理和应用,是学习Java互联网技术应用难得一见的好书。
——《Qt Quick核心编程》作者、订阅号“程序视界”创建者
第1部分 入门和技术基础
第1章 认识SSM框架和Redis 2
1.1 Spring框架 2
1.2 MyBatis简介 6
1.3 Spring MVC简介 11
1.4 最流行的NoSQL——Redis 12
1.5 SSM+Redis结构框图及概述 13
第2章 Java设计模式 15
2.1 Java反射技术 15
2.2 动态代理模式和责任链模式 19
2.3 观察者(Observer)模式 30
2.4 工厂模式和抽象工厂模式 35
2.5 建造者(Builder)模式 38
2.6 总结 41
第2部分 互联网持久框架——MyBatis
第3章 认识MyBatis核心组件 44
3.1 持久层的概念和MyBatis的特点 44
3.2 准备MyBatis环境 45
3.3 MyBatis的核心组件 46
3.4 SqlSessionFactory(工厂接口) 47
3.5 SqlSession 50
3.6 映射器 51
3.7 生命周期 55
3.8 实例 57
第4章 MyBatis配置 63
4.1 概述 63
4.2 properties属性 64
4.3 settings设置 66
4.4 typeAliases别名 69
4.5 typeHandler类型转换器 72
4.6 ObjectFactory(对象工厂) 87
4.7 插件 89
4.8 environments(运行环境) 89
4.9 databaseIdProvider数据库厂商标识 95
4.10 引入映射器的方法 99
第5章 映射器 102
5.1 概述 102
5.2 select元素——查询语句 103
5.3 insert元素——插入语句 112
5.4 update元素和delete元素 114
5.5 sql元素 115
5.6 参数 116
5.7 resultMap元素 118
5.8 级联 120
5.9 缓存 143
5.10 存储过程 149
第6章 动态SQL 155
6.1 概述 155
6.2 if元素 156
6.3 choose、when、otherwise元素 156
6.4 trim、where、set元素 157
6.5 foreach元素 159
6.6 用test的属性判断字符串 159
6.7 bind元素 160
第7章 MyBatis的解析和运行原理 162
7.1 构建SqlSessionFactory过程 163
7.2 SqlSession运行过程 168
第8章 插件 181
8.1 插件接口 181
8.2 插件的初始化 182
8.3 插件的代理和反射设计 183
8.4 常用的工具类——MetaObject 186
8.5 插件开发过程和实例 187
8.6 总结 205
第3部分 Spring基础
第9章 Spring IoC的概念 208
9.1 Spring的概述 208
9.2 Spring IoC概述 210
9.3 Spring IoC容器 215
9.4 小结 223
第10章 装配Spring Bean 224
10.1 依赖注入的3种方式 224
10.2 装配Bean概述 227
10.3 通过XML配置装配Bean 228
10.4 通过注解装配Bean 235
10.5 装配的混合使用 246
10.6 使用Profile 249
10.7 加载属性(properties)文件 254
10.8 条件化装配Bean 258
10.9 Bean的作用域 259
10.10 使用Spring表达式(Spring EL) 261
第11章 面向切面编程 267
11.1 一个简单的约定游戏 267
11.2 Spring AOP的基本概念 274
11.3 使用@AspectJ注解开发Spring AOP 280
11.4 使用XML配置开发Spring AOP 293
11.5 经典Spring AOP应用程序 299
11.6 多个切面 301
11.7 小结 306
第12章 Spring和数据库编程 307
12.1 传统的JDBC代码的弊端 307
12.2 配置数据库资源 309
12.3 JDBC代码失控的解决方案——jdbcTemplate 311
12.4 MyBatis-Spring项目 317
第13章 深入Spring数据库事务管理 330
13.1 Spring数据库事务管理器的设计 331
13.2 编程式事务 336
13.3 声明式事务 337
13.4 数据库的相关知识 343
13.5 选择隔离级别和传播行为 347
13.6 在Spring+MyBatis组合中使用事务 350
13.7 @Transactional的自调用失效问题 358
13.8 典型错误用法的剖析 363
第4部分 Spring MVC框架
第14章 Spring MVC的初始化和流程 370
14.1 MVC设计概述 370
14.2 Spring MVC初始化 378
14.3 Spring MVC开发流程详解 389
第15章 深入Spring MVC组件开发 399
15.1 控制器接收各类请求参数 399
15.2 重定向 409
15.3 保存并获取属性参数 412
15.4 拦截器 417
15.5 验证表单 424
15.6 数据模型 432
15.7 视图和视图解析器 434
15.8 上传文件 441
第16章 Spring MVC高级应用 449
16.1 Spring MVC的数据转换和格式化 449
16.2 为控制器添加通知 466
16.3 处理异常 470
16.4 国际化 471
第5部分 Redis应用
第17章 Redis概述 480
17.1 Redis在Java Web中的应用 481
17.2 Redis基本安装和使用 483
17.3 Redis的Java API 486
17.4 简介Redis的6种数据类型 494
17.5 Redis和数据库的异同 495
第18章 Redis数据结构常用命令 496
18.1 Redis数据结构——字符串 497
18.2 Redis数据结构——哈希 502
18.3 Redis数据结构——链表(linked-list) 506
18.4 Redis数据结构——集合 513
18.5 Redis数据结构——有序集合 516
18.6 基数——HyperLogLog 522
第19章 Redis的一些常用技术 525
19.1 Redis的基础事务 526
19.2 探索Redis事务回滚 528
19.3 使用watch命令监控事务 529
19.4 流水线(pipelined) 532
19.5 发布订阅 534
19.6 超时命令 538
19.7 使用Lua语言 540
19.8 小结 547
第20章 Redis配置 548
20.1 Redis基础配置文件 548
20.2 Redis备份(持久化) 549
20.3 Redis内存回收策略 552
20.4 复制 553
20.5 哨兵(Sentinel)模式 556
第21章 Spring缓存机制和Redis的结合 565
21.1 Redis和数据库的结合 565
21.2 使用Spring缓存机制整合Redis 568
21.3 RedisTemplate的实例 582
第6部分 SSM框架+Redis实践应用
第22章 高并发业务 586
22.1 互联系统应用架构基础分析 586
22.2 高并发系统的分析和设计 588
22.3 搭建抢红包开发环境和超发现象 595
22.4 悲观锁 611
22.5 乐观锁 614
22.6 使用Redis实现抢红包 621
22.7 各类方式的优缺点 631
附录A 数据库表模型 633
附录B DispatcherServlet流程源码分析 637
附录C JSTL常用标签 648
附录D spring data redis项目分析 660
随着移动互联网的兴起以及手机和平板电脑的普及,Java开发方向发生了很大变化,渐渐从管理系统走向了互联网系统。互联网系统的要求是大数据、高并发、高响应,而非管理系统的少数据、低并发和缓慢响应。为顺应技术发展趋势,2016年春季笔者写了一本关于MyBatis的著作《深入浅出MyBatis技术原理与实战》,作为国内第一本关于MyBatis技术的著作,该书受到了业内的广泛肯定。与此同时,电子工业出版社编辑汪达文给了我一个很好的建议,她建议写一本Java合集,这更贴近开发工作的实际需求。在移动互联网兴起的时代,Spring+Spring MVC+MyBatis(SSM)的Java组合已经成为时代的主流,伴随着NoSQL(缓存)的广泛应用,Redis成了主要的NoSQL工具,这些都是当今移动互联网最为流行的技术,于是笔者打算竭尽所能写一本SSM+Redis的合集,这就是本书创作的缘起。
移动互联网的新要求
高并发:举个例子,大公司企业ERP应用,有1万名员工使用,同时在线的用户可能只有数百人,而操作一个业务的同一个数据的可能只有几个人,其系统一般不会存在高并发的压力,使用传统程序和数据库完全可以应付。在互联网中一件热门的商品,比如新版小米手机,可能刚一上市就有成千上万的请求到达服务器,要求瞬间执行数以万计的数据操作,对性能要求高,操作不当容易造成网站瘫痪,引发网站的生存危机。
高响应:企业管理系统可以缓慢处理一些业务,而在高并发的互联网系统中,却不可以,按照互联网的要求一般以5秒为上限,超过5秒后响应,用户体验不好,从而影响用户忠诚度,而这些往往需要在高并发和大数据量的场景下实现。
数据一致性:由于高并发,多个线程对同一数据同时访问,需要保证数据的一致性,比如电商网站的金额、商品库存不能出错,还要保证其性能不能太差,这是在管理系统中不会出现的场景。
技术复杂化:在互联网中流行许多新技术,比如常见的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将
Java EE互联网轻量级框架整合开发 SSM框架(Spring MVC+Spring+MyBatis)和Redis实现 电子书 下载 mobi epub pdf txt
学习永无止境,爱自己为自己加油。很好的坐着
评分书还没看,但运输中把书搞的像二手书似的
评分不错的活动不错的书,很划算,买了一堆回来慢慢看
评分这个月底了。,这个好这个好这个好这个好这个好这个
评分适合初学者阅读,写的比较通俗易懂,还不错。。
评分东西挺好的,送货速度很快
评分书还没看,但运输中把书搞的像二手书似的
评分书的质量很好,618买了一堆书,得慢慢看了
评分计算机经典图书,618活动买的价格实惠,正版经典,屯了很多好书
Java EE互联网轻量级框架整合开发 SSM框架(Spring MVC+Spring+MyBatis)和Redis实现 pdf epub mobi txt 电子书 下载