当前位置:首页 > 工业技术
Java EE互联网轻量级框架整合开发  SSM框架  Spring MVC+Spring+MyBatis  和Redis实现
Java EE互联网轻量级框架整合开发  SSM框架  Spring MVC+Spring+MyBatis  和Redis实现

Java EE互联网轻量级框架整合开发 SSM框架 Spring MVC+Spring+MyBatis 和Redis实现PDF电子书下载

工业技术

  • 电子书积分:19 积分如何计算积分?
  • 作 者:杨开振,周吉文,梁华辉,谭茂华著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:9787121318474
  • 页数:670 页
图书介绍:当前已经是移动互联网时代,本书主要介绍当前Java互联网的主流框架SSM(Spring + Spring MVC + MyBatis,简称SSM,下同)组合和Redis(NoSQL)介绍,这些是Java互联网的基础。首先介绍SSM的大概状况和各类技术在互联网中的作用,和一些框架中常用的设计模式;跟着详细SSM三大框架的应用和实现原理,介绍原理的时候会结合设计模式一起探讨,使得读者能够明了,同时在Spring AOP技术中加入数据库技术中的隔离层,和其传播行为的讨论,使得读者更加明确如何使用Spring管理数据库事务。结合Java介绍Redis技术,也是全国首创,同时更符合Java开发者的需求。然后通过抢红包这样的热门话题讨论秒杀技术,主要涉及互联网最重要,最核心和最困难的问题高并发下的数据安全问题。最后给出一些常见的使用错误,不良习惯,典型应用和技巧,帮助读者用好SSM框架。
《Java EE互联网轻量级框架整合开发 SSM框架 Spring MVC+Spring+MyBatis 和Redis实现》目录

第1部分 入门和技术基础 2

第1章 认识SSM框架和Redis 2

1.1 Spring框架 2

1.1.1 Spring IoC简介 2

1.1.2 Spring AOP 4

1.2 MyBatis简介 6

1.2.1 Hibernate简介 7

1.2.2 MyBatis 8

1.2.3 Hibernate和MyBatis的区别 11

1.3 Spring MVC简介 11

1.4 最流行的NoSQL——Redis 12

1.5 SSM+Redis结构框图及概述 13

第2章 Java设计模式 15

2.1 Java反射技术 15

2.1.1 通过反射构建对象 15

2.1.2 反射方法 17

2.1.3 实例 18

2.2 动态代理模式和责任链模式 19

2.2.1 JDK动态代理 20

2.2.2 CGLIB动态代理 22

2.2.3 拦截器 24

2.2.4 责任链模式 28

2.3 观察者(Observer)模式 30

2.3.1 概述 31

2.3.2 实例 32

2.4 工厂模式和抽象工厂模式 35

2.4.1 普通工厂(Simple Factory)模式 35

2.4.2 抽象工厂(Abstract Factory)模式 36

2.5 建造者(Builder)模式 38

2.5.1 概述 38

2.5.2 Builder模式实例 39

2.6 总结 41

第2部分 互联网持久框架——MyBatis 44

第3章 认识MyBatis核心组件 44

3.1 持久层的概念和MyBatis的特点 44

3.2 准备MyBatis环境 45

3.3 MyBatis的核心组件 46

3.4 SqlSessionFactory(工厂接口) 47

3.4.1 使用XML构建SqlSessionFactory 48

3.4.2 使用代码创建SqlSessionFactory 50

3.5 SqlSession 50

3.6 映射器 51

3.6.1 用XML实现映射器 52

3.6.2 注解实现映射器 53

3.6.3 SqlSession发送SQL 54

3.6.4 用Mapper接口发送SQL 55

3.6.5 对比两种发送SQL方式 55

3.7 生命周期 55

3.7.1 SqlSessionFactoryBuilder 56

3.7.2 SqlSessionFactory 56

3.7.3 SqlSession 56

3.7.4 Mapper 56

3.8 实例 57

第4章 MyBatis配置 63

4.1 概述 63

4.2 properties属性 64

4.2.1 property子元素 64

4.2.2 使用properties文件 65

4.2.3 使用程序传递方式传递参数 66

4.2.4 总结 66

4.3 settings设置 66

4.4 typeAliases别名 69

4.4.1 系统定义别名 69

4.4.2 自定义别名 72

4.5 typeHandler类型转换器 72

4.5.1 系统定义的typeHandler 73

4.5.2 自定义typeHandler 78

4.5.3 枚举typeHandler 81

4.5.4 文件操作 86

4.6 ObjectFactory(对象工厂) 87

4.7 插件 89

4.8 environments(运行环境) 89

4.8.1 transactionManager(事务管理器) 90

4.8.2 environment数据源环境 92

4.9 databaseIdProvider数据库厂商标识 95

4.9.1 使用系统默认的databaseIdProvider 95

4.9.2 不使用系统规则 98

4.10 引入映射器的方法 99

第5章 映射器 102

5.1 概述 102

5.2 select元素——查询语句 103

5.2.1 简单的select元素的应用 104

5.2.2 自动映射和驼峰映射 105

5.2.3 传递多个参数 106

5.2.4 使用resultMap映射结果集 109

5.2.5 分页参数RowBounds 110

5.3 insert元素——插入语句 112

5.3.1 概述 112

5.3.2 简单的insert语句的应用 113

5.3.3 主键回填 113

5.3.4 自定义主键 114

5.4 update元素和delete元素 114

5.5 sql元素 115

5.6 参数 116

5.6.1 概述 116

5.6.2 存储过程参数支持 117

5.6.3 特殊字符串的替换和处理(#和$) 117

5.7 resultMap元素 118

5.7.1 resultMap元素的构成 118

5.7.2 使用map存储结果集 119

5.7.3 使用POJO存储结果集 119

5.8 级联 120

5.8.1 MyBatis中的级联 121

5.8.2 建立POJO 124

5.8.3 配置映射文件 127

5.8.4 N+1问题 133

5.8.5 延迟加载 133

5.8.6 另一种级联 137

5.8.7 多对多级联 140

5.9 缓存 143

5.9.1 一级缓存和二级缓存 144

5.9.2 缓存配置项、自定义和引用 147

5.10 存储过程 149

5.10.1 IN和OUT参数存储过程 150

5.10.2 游标的使用 152

第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.1.1 构建Configuration 165

7.1.2 构建映射器的内部组成 165

7.1.3 构建SqlSessionFactory 167

7.2 SqlSession运行过程 168

7.2.1 映射器(Mapper)的动态代理 168

7.2.2 SqlSession下的四大对象 172

7.2.3 SqlSession运行总结 179

第8章 插件 181

8.1 插件接口 181

8.2 插件的初始化 182

8.3 插件的代理和反射设计 183

8.4 常用的工具类——MetaObject 186

8.5 插件开发过程和实例 187

8.5.1 确定需要拦截的签名 187

8.5.2 实现拦截方法 189

8.5.3 配置和运行 191

8.5.4 插件实例——分页插件 192

8.6 总结 205

第3部分 Spring基础 208

第9章 Spring IoC的概念 208

9.1 Spring的概述 208

9.2 Spring IoC概述 210

9.2.1 主动创建对象 211

9.2.2 被动创建对象 213

9.2.3 Spring IoC阐述 214

9.3 Spring IoC容器 215

9.3.1 Spring IoC容器的设计 215

9.3.2 Spring IoC容器的初始化和依赖注入 218

9.3.3 Spring Bean的生命周期 218

9.4 小结 223

第10章 装配Spring Bean 224

10.1 依赖注入的3种方式 224

10.1.1 构造器注入 224

10.1.2 使用setter注入 225

10.1.3 接口注入 226

10.2 装配Bean概述 227

10.3 通过XML配置装配Bean 228

10.3.1 装配简易值 228

10.3.2 装配集合 229

10.3.3 命名空间装配 233

10.4 通过注解装配Bean 235

10.4.1 使用@Component装配Bean 236

10.4.2 自动装配——@Autowired 239

10.4.3 自动装配的歧义性(@Primary和@Qualifier) 241

10.4.4 装载带有参数的构造方法类 244

10.4.5 使用@Bean装配Bean 245

10.4.6 注解自定义Bean的初始化和销毁方法 245

10.5 装配的混合使用 246

10.6 使用Profile 249

10.6.1 使用注解@Profile配置 249

10.6.2 使用XML定义Profile 250

10.6.3 启动Profile 252

10.7 加载属性(properties)文件 254

10.7.1 使用注解方式加载属性文件 254

10.7.2 使用XML方式加载属性文件 257

10.8 条件化装配Bean 258

10.9 Bean的作用域 259

10.10 使用Spring表达式(Spring EL) 261

10.10.1 Spring EL相关的类 261

10.10.2 Bean的属性和方法 264

10.10.3 使用类的静态常量和方法 265

10.10.4 Spring EL运算 265

第11章 面向切面编程 267

11.1 一个简单的约定游戏 267

11.1.1 约定规则 267

11.1.2 读者的代码 269

11.1.3 笔者的代码 271

11.2 Spring AOP的基本概念 274

11.2.1 AOP的概念和使用原因 274

11.2.2 面向切面编程的术语 278

11.2.3 Spring对AOP的支持 280

11.3 使用@AspectJ注解开发Spring AOP 280

11.3.1 选择连接点 281

11.3.2 创建切面 281

11.3.3 定义切点 283

11.3.4 测试AOP 285

11.3.5 环绕通知 287

11.3.6 织入 289

11.3.7 给通知传递参数 289

11.3.8 引入 290

11.4 使用XML配置开发Spring AOP 293

11.4.1 前置通知、后置通知、返回通知和异常通知 294

11.4.2 环绕通知 296

11.4.3 给通知传递参数 297

11.4.4 引入 298

11.5 经典Spring AOP应用程序 299

11.6 多个切面 301

11.7 小结 306

第12章 Spring和数据库编程 307

12.1 传统的JDBC代码的弊端 307

12.2 配置数据库资源 309

12.2.1 使用简单数据库配置 309

12.2.2 使用第三方数据库连接池 310

12.2.3 使用JNDI数据库连接池 310

12.3 JDBC代码失控的解决方案——jdbcTemplate 311

12.3.1 jdbcTemplate的增、删、查、改 312

12.3.2 执行多条SQL 314

12.3.3 jdbcTemplate的源码分析 315

12.4 MyBatis-Spring项目 317

12.4.1 配置SqlSessionFactoryBean 318

12.4.2 SqlSessionTemplate组件 322

12.4.3 配置MapperFactoryBean 324

12.4.4 配置MapperScannerConfigurer 324

12.4.5 测试Spring+MyBatis 327

第13章 深入Spring数据库事务管理 330

13.1 Spring数据库事务管理器的设计 331

13.1.1 配置事务管理器 333

13.1.2 用Java配置方式实现Spring数据库事务 334

13.2 编程式事务 336

13.3 声明式事务 337

13.3.1 Transactional的配置项 337

13.3.2 使用XML进行配置事务管理器 339

13.3.3 事务定义器 340

13.3.4 声明式事务的约定流程 341

13.4 数据库的相关知识 343

13.4.1 数据库事务ACID特性 343

13.4.2 丢失更新 343

13.4.3 隔离级别 344

13.5 选择隔离级别和传播行为 347

13.5.1 选择隔离级别 347

13.5.2 传播行为 348

13.6 在Spring+MyBatis组合中使用事务 350

13.7 @Transactional的自调用失效问题 358

13.8 典型错误用法的剖析 363

13.8.1 错误使用Service 363

13.8.2 过长时间占用事务 364

13.8.3 错误捕捉异常 366

第4部分 Spring MVC框架 370

第14章 Spring MVC的初始化和流程 370

14.1 MVC设计概述 370

14.1.1 Spring MVC的架构 372

14.1.2 Spring MVC组件与流程 372

14.1.3 Spring MVC入门的实例 374

14.2 Spring MVC初始化 378

14.2.1 初始化Spring IoC上下文 378

14.2.2 初始化映射请求上下文 379

14.2.3 使用注解配置方式初始化 386

14.3 Spring MVC开发流程详解 389

14.3.1 配置@RequestMapping 390

14.3.2 控制器的开发 391

14.3.3 视图渲染 396

14.4 小结 398

第15章 深入Spring MVC组件开发 399

15.1 控制器接收各类请求参数 399

15.1.1 接收普通请求参数 401

15.1.2 使用@RequestParam注解获取参数 402

15.1.3 使用URL传递参数 403

15.1.4 传递JSON参数 404

15.1.5 接收列表数据和表单序列化 406

15.2 重定向 409

15.3 保存并获取属性参数 412

15.3.1 注解@RequestAttribute 412

15.3.2 注解@SessionAttribute和注解@SessionAttributes 414

15.3.3 注解@CookieValue和注解@RequestHeader 417

15.4 拦截器 417

15.4.1 拦截器的定义 418

15.4.2 拦截器的执行流程 419

15.4.3 开发拦截器 419

15.4.4 多个拦截器执行的顺序 421

15.5 验证表单 424

15.5.1 使用JSR 303注解验证输入内容 425

15.5.2 使用验证器 429

15.6 数据模型 432

15.7 视图和视图解析器 434

15.7.1 视图 434

15.7.2 视图解析器 436

15.7.3 实例:Excel视图的使用 438

15.8 上传文件 441

15.8.1 MultipartResolver概述 442

15.8.2 提交上传文件表单 446

第16章 Spring MVC高级应用 449

16.1 Spring MVC的数据转换和格式化 449

16.1.1 HttpMessageConverter和JSON消息转换器 451

16.1.2 一对一转换器(Converter) 455

16.1.3 数组和集合转换器GenericConverter 458

16.1.4 使用格式化器(Formatter) 463

16.2 为控制器添加通知 466

16.3 处理异常 470

16.4 国际化 471

16.4.1 概述 471

16.4.2 MessageSource接口 473

16.4.3 CookieLocaleResolver和SessionLocaleResolver 475

16.4.4 国际化拦截器(LocaleChangeInterceptor) 477

16.4.5 开发国际化 477

第5部分 Redis应用 480

第17章 Redis概述 480

17.1 Redis在Java Web中的应用 481

17.1.1 缓存 481

17.1.2 高速读/写场合 482

17.2 Redis基本安装和使用 483

17.2.1 在Windows下安装Redis 483

17.2.2 在Linux下安装Redis 485

17.3 Redis的Java API 486

17.3.1 在Java程序中使用Redis 487

17.3.2 在Spring中使用Redis 488

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.5.1 Redis基础命令 516

18.5.2 spring-data-redis对有序集合的封装 518

18.5.3 使用Spring操作有序集合 520

18.6 基数——HyperLogLog 522

18.7 小结 524

第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.7.1 执行输入Lua程序代码 541

19.7.2 执行Lua文件 544

19.8 小结 547

第20章 Redis配置 548

20.1 Redis基础配置文件 548

20.2 Redis备份(持久化) 549

20.3 Redis内存回收策略 552

20.4 复制 553

20.4.1 主从同步基础概念 553

20.4.2 Redis主从同步配置 554

20.4.3 Redis主从同步的过程 555

20.5 哨兵(Sentinel)模式 556

20.5.1 哨兵模式概述 557

20.5.2 搭建哨兵模式 558

20.5.3 在Java中使用哨兵模式 559

20.5.4 哨兵模式的其他配置项 563

第21章 Spring缓存机制和Redis的结合 565

21.1 Redis和数据库的结合 565

21.1.1 Redis和数据库读操作 566

21.1.2 Redis和数据库写操作 567

21.2 使用Spring缓存机制整合Redis 568

21.2.1 准备测试环境 568

21.2.2 Spring的缓存管理器 573

21.2.3 缓存注解简介 575

21.2.4 注解@Cacheable和@CachePut 576

21.2.5 注解@CacheEvict 580

21.2.6 不适用缓存的方法 581

21.2.7 自调用失效问题 582

21.3 RedisTemplate的实例 582

第6部分 SSM框架+Redis实践应用 586

第22章 高并发业务 586

22.1 互联系统应用架构基础分析 586

22.2 高并发系统的分析和设计 588

22.2.1 有效请求和无效请求 588

22.2.2 系统设计 590

22.2.3 数据库设计 591

22.2.4 动静分离技术 593

22.2.5 锁和高并发 594

22.3 搭建抢红包开发环境和超发现象 595

22.3.1 搭建Service层和DAO层 595

22.3.2 使用全注解搭建SSM开发环境 602

22.3.3 开发控制器和超发现象测试 609

22.4 悲观锁 611

22.5 乐观锁 614

22.5.1 CAS原理概述 614

22.5.2 ABA问题 615

22.5.3 乐观锁实现抢红包业务 616

22.5.4 乐观锁重入机制 618

22.6 使用Redis实现抢红包 621

22.6.1 使用注解方式配置Redis 621

22.6.2 数据存储设计 622

22.6.3 使用Redis实现抢红包 627

22.7 各类方式的优缺点 631

附录A 数据库表模型 633

附录B DispatcherServlet流程源码分析 637

附录C JSTL常用标签 648

附录D spring data redis项目分析 660

相关图书
作者其它书籍
返回顶部