精通Spring4.x+企业应用开发实战 陈雄华 林开雄 文建国@编著(Spring 电子书,Spring PDF)

开发软件 spring PDF 电子书  admin 浏览 评论

blob.png


精通Spring4.x+企业应用开发实战.pdf

内容简介


Spring 4.0是Spring在积蓄4年后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域*开源平台的翘楚地位。Spring 4.0引入了众多Java开发者翘首以盼的基于Groovy Bean的配置、HTML 5/WebSocket支持等新功能,全面支持Java 8.0,*要求是Java 6.0。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是Java Web应用开发的难度,同时有效提升应用开发的优雅性。本书是在《精通Spring 3.x——企业应用开发详解》的基础上,历时一年的重大调整改版而成的,延续了上一版本“追求深度,注重原理,不停留在技术表面”的写作风格,力求使读者在熟练使用Spring的各项功能的同时透彻理解Spring的内部实现,真正做到知其然并知其所以然。此外,本书重点突出了“实战性”的主题,力求使全书内容体现“从实际项目中来,到实际项目中去”的写作原则。

作者简介



陈雄华
   技术高手,毕业于厦门大学计算机与信息工程学院,倾心Spring技术研究多年,是ROP开源项目创始人,担任过多家公司的系统架构师、技术总监,主持过多个大型企业级应用及多家公司基础技术平台的研发,拥有丰富的一线实战经验。出版《精通JBuilder 2005》、《精通Spring 3.x》、《Spring就这么简单》等多本技术书籍,广受读者好评。

林开雄
   资深软件开发经理,拥有10余年软件开发经验,对Spring、大数据、应用虚拟化、微服务等开源技术的应用和实现原理有深入研究,拥有丰富的产品研发实战经验,目前专注于大数据解决方案以及微服务的研究与实施,参与《精通Spring 3.x》、《Spring就这么简单》等多本技术书籍的创作。

文建国
  系统架构设计师、高级项目经理,精通Spring等优秀开源技术在企业中的应用,主要研究方向为云计算、大数据、业务基础平台、分布式等技术。曾参与中国电信ITSP 3.0技术架构规范的编写,有多个大型全国集中项目的架构和管理经验。目前致力于“智能制造”的人机一体化系统研发,希望通过物联网与互联网的融合提升生产效率和增强企业原有系统。热衷于开源技术布道,曾译有《Spring Data实战》、《大规模Java平台虚拟化与调优》等书籍。

目  录


第1篇 基础篇
第1章 Spring概述 2
1.1 认识Spring 2
1.2 关于SpringSource 4
1.3 Spring带给我们什么 5
1.4 Spring体系结构 6
1.5 Spring对Java版本的要求 8
1.6 Spring 4.0新特性 8
1.6.1 全面支持Java 8.0 9
1.6.2 核心容器的增强 11
1.6.3 支持用Groovy定义Bean 12
1.6.4 Web的增强 12
1.6.5 支持WebSocket 12
1.6.6 测试的增强 13
1.6.7 其他 13
1.7 Spring子项目 13
1.8 如何获取Spring 15
1.9 小结 16
第2章 快速入门 17
2.1 实例概述 17
2.1.1 比Hello World更适用的实例 18
2.1.2 实例功能简介 18
2.2 环境准备 20
2.2.1 构建工具Maven 20
2.2.2 创建库表 22
2.2.3 建立工程 23
2.2.4 类包及Spring配置文件规划 28
2.3 持久层 29
2.3.1 建立领域对象 29
2.3.2 UserDao 30
2.3.3 LoginLogDao 33
2.3.4 在Spring中装配DAO 34
2.4 业务层 35
2.4.1 UserService 35
2.4.2 在Spring中装配Service 37
2.4.3 单元测试 38
2.5 展现层 40
2.5.1 配置Spring MVC框架 40
2.5.2 处理登录请求 42
2.5.3 JSP视图页面 44
2.6 运行Web应用 46
2.7 小结 48
第3章 Spring Boot 49
3.1 Spring Boot概览 49
3.1.1 Spring Boot发展背景 50
3.1.2 Spring Boot特点 50
3.1.3 Spring Boot启动器 50
3.2 快速入门 52
3.3 安装配置 54
3.3.1 基于Maven环境配置 54
3.3.2 基于Gradle环境配置 56
3.3.3 基于Spring Boot CLI环境
配置 57
3.3.4 代码包结构规划 58
3.4 持久层 59
3.4.1 初始化配置 59
3.4.2 UserDao 61
3.5 业务层 62
3.6 展现层 64
3.6.1 配置pom.xml依赖 64
3.6.2 配置Spring MVC框架 65
3.6.3 处理登录请求 65
3.7 运维支持 67
3.8 小结 70
? 第2篇 核心篇
第4章 IoC容器 72
4.1 IoC概述 72
4.1.1 通过实例理解IoC的概念 73
4.1.2 IoC的类型 75
4.1.3 通过容器完成依赖关系的
注入 77
4.2 相关Java基础知识 78
4.2.1 简单实例 78
4.2.2 类装载器ClassLoader 80
4.2.3 Java反射机制 83
4.3 资源访问利器 85
4.3.1 资源抽象接口 85
4.3.2 资源加载 88
4.4 BeanFactory和ApplicationContext 91
4.4.1 BeanFactory介绍 92
4.4.2 ApplicationContext介绍 94
4.4.3 父子容器 103
4.5 Bean的生命周期 103
4.5.1 BeanFactory中Bean的生命
周期 103
4.5.2 ApplicationContext中Bean
的生命周期 112
4.6 小结 114
第5章 在IoC容器中装配Bean 115
5.1 Spring配置概述 116
5.1.1 Spring容器高层视图 116
5.1.2 基于XML的配置 117
5.2 Bean基本配置 120
5.2.1 装配一个Bean 120
5.2.2 Bean的命名 120
5.3 依赖注入 121
5.3.1 属性注入 121
5.3.2 构造函数注入 124
5.3.3 工厂方法注入 128
5.3.4 选择注入方式的考量 130
5.4 注入参数详解 130
5.4.1 字面值 130
5.4.2 引用其他Bean 131
5.4.3 内部Bean 133
5.4.4 null值 133
5.4.5 级联属性 134
5.4.6 集合类型属性 134
5.4.7 简化配置方式 138
5.4.8 自动装配 141
5.5 方法注入 142
5.5.1 lookup方法注入 142
5.5.2 方法替换 143
5.6 <bean>之间的关系 144
5.6.1 继承 144
5.6.2 依赖 145
5.6.3 引用 146
5.7 整合多个配置文件 147
5.8 Bean作用域 148
5.8.1 singleton作用域 148
5.8.2 prototype作用域 149
5.8.3 与Web应用环境相关的Bean
作用域 150
5.8.4 作用域依赖问题 152
5.9 FactoryBean 153
5.10 基于注解的配置 155
5.10.1 使用注解定义Bean 155
5.10.2 扫描注解定义的Bean 156
5.10.3 自动装配Bean 157
5.10.4 Bean作用范围及生命过程
方法 162
5.11 基于Java类的配置 164
5.11.1 使用Java类提供Bean定义
信息 164
5.11.2 使用基于Java类的配置信息
启动Spring容器 167
5.12 基于Groovy DSL的配置 169
5.12.1 使用Groovy DSL提供Bean
定义信息 169
5.12.2 使用GenericGroovyApplication
Context启动Spring容器 171
5.13 通过编码方式动态添加Bean 172
5.13.1 通过DefaultListableBean
Factory 172
5.13.2 扩展自定义标签 173
5.14 不同配置方式比较 175
5.15 小结 177
第6章 Spring容器高级主题 178
6.1 Spring容器技术内幕 178
6.1.1 内部工作机制 179
6.1.2 BeanDefinition 182
6.1.3 InstantiationStrategy 183
6.1.4 BeanWrapper 183
6.2 属性编辑器 184
6.2.1 JavaBean的编辑器 185
6.2.2 Spring默认属性编辑器 188
6.2.3 自定义属性编辑器 189
6.3 使用外部属性文件 192
6.3.1 PropertyPlaceholderConfigurer
属性文件 192
6.3.2 使用加密的属性文件 195
6.3.3 属性文件自身的引用 198
6.4 引用Bean的属性值 199
6.5 国际化信息 201
6.5.1 基础知识 201
6.5.2 MessageSource 206
6.5.3 容器级的国际化信息资源 209
6.6 容器事件 210
6.6.1 Spring事件类结构 211
6.6.2 解构Spring事件体系的具体
实现 213
6.6.3 一个实例 214
6.7 小结 215
第7章 Spring AOP基础 216
7.1 AOP概述 216
7.1.1 AOP到底是什么 217
7.1.2 AOP术语 219
7.1.3 AOP的实现者 221
7.2 基础知识 222
7.2.1 带有横切逻辑的实例 222
7.2.2 JDK动态代理 224
7.2.3 CGLib动态代理 228
7.2.4 AOP联盟 229
7.2.5 代理知识小结 230
7.3 创建增强类 230
7.3.1 增强类型 230
7.3.2 前置增强 231
7.3.3 后置增强 235
7.3.4 环绕增强 236
7.3.5 异常抛出增强 237
7.3.6 引介增强 239
7.4 创建切面 243
7.4.1 切点类型 243
7.4.2 切面类型 244
7.4.3 静态普通方法名匹配切面 246
7.4.4 静态正则表达式方法匹配
切面 248
7.4.5 动态切面 251
7.4.6 流程切面 254
7.4.7 复合切点切面 256
7.4.8 引介切面 258
7.5 自动创建代理 259
7.5.1 实现类介绍 259
7.5.2 BeanNameAutoProxyCreator 260
7.5.3 DefaultAdvisorAutoProxy
Creator 261
7.5.4 AOP无法增强疑难问题
剖析 262
7.6 小结 267
第8章 基于@AspectJ和Schema的
AOP 269
8.1 Spring对AOP的支持 269
8.2 Java 5.0注解知识快速进阶 270
8.2.1 了解注解 270
8.2.2 一个简单的注解类 271
8.2.3 使用注解 272
8.2.4 访问注解 273
8.3 着手使用@AspectJ 274
8.3.1 使用前的准备 275
8.3.2 一个简单的例子 275
8.3.3 如何通过配置使用@AspectJ
切面 277
8.4 @AspectJ语法基础 278
8.4.1 切点表达式函数 278
8.4.2 在函数入参中使用通配符 279
8.4.3 逻辑运算符 280
8.4.4 不同增强类型 281
8.4.5 引介增强用法 282
8.5 切点函数详解 283
8.5.1 @annotation() 284
8.5.2 execution() 285
8.5.3 args()和@args() 287
8.5.4 within() 288
8.5.5 @within()和@target() 289
8.5.6 target()和this() 290
8.6 @AspectJ进阶 291
8.6.1 切点复合运算 292
8.6.2 命名切点 292
8.6.3 增强织入的顺序 294
8.6.4 访问连接点信息 294
8.6.5 绑定连接点方法入参 295
8.6.6 绑定代理对象 297
8.6.7 绑定类注解对象 298
8.6.8 绑定返回值 299
8.6.9 绑定抛出的异常 299
8.7 基于Schema配置切面 300
8.7.1 一个简单切面的配置 300
8.7.2 配置命名切点 302
8.7.3 各种增强类型的配置 303
8.7.4 绑定连接点信息 305
8.7.5 Advisor配置 306
8.8 混合切面类型 307
8.8.1 混合使用各种切面类型 308
8.8.2 各种切面类型总结 308
8.9 其他 309
8.9.1 JVM Class文件字节码转换
基础知识 309
8.9.2 使用LTW织入切面 311
8.10 小结 314
第9章 Spring SpEL 316
9.1 JVM动态语言 316
9.2 SpEL表达式概述 318
9.3 SpEL核心接口 319
9.3.1 EvaluationContext接口 320
9.3.2 SpEL编译器 321
9.4 SpEL基础表达式 323
9.4.1 文本字符解析 323
9.4.2 对象属性解析 323
9.4.3 数组、集合类型解析 324
9.4.4 方法解析 326
9.4.5 操作符解析 327
9.4.6 安全导航操作符 329
9.4.7 三元操作符 330
9.4.8 Elvis操作符 331
9.4.9 赋值、类型、构造器、变量 332
9.4.10 集合过滤 335
9.4.11 集合转换 335
9.5 在Spring中使用SpEL 336
9.5.1 基于XML的配置 336
9.5.2 基于注解的配置 337
9.6 小结 338
? 第3篇 数据篇
第10章 Spring对DAO的支持 340
10.1 Spring的DAO理念 340
10.2 统一的异常体系 341
10.2.1 Spring的DAO异常体系 341
10.2.2 JDBC的异常转换器 343
10.2.3 其他持久化技术的异常
转换器 344
10.3 统一数据访问模板 344
10.3.1 使用模板和回调机制 345
10.3.2 Spring为不同持久化技术
所提供的模板类 347
10.4 数据源 348
10.4.1 配置一个数据源 348
10.4.2 获取JNDI数据源 352
10.4.3 Spring的数据源实现类 353
10.5 小结 353
第11章 Spring的事务管理 355
11.1 数据库事务基础知识 355
11.1.1 何为数据库事务 356
11.1.2 数据并发的问题 357
11.1.3 数据库锁机制 359
11.1.4 事务隔离级别 360

前  言


本书小序
Spring从2004年发布第一个版本以来,至今已有12载。12年刚好是一个生肖轮回,但在一日千里的计算机领域,12年基本上算是一个世纪了。都说“好花不常开,好景不常在”,但Spring这朵Java开源世界里芳香馥郁的奇葩不但没有零落成泥,反而满园春色历久弥艳,成为Java开发者无法回避的开源框架。
回顾Spring的光辉岁月,一路与时俱进,引领时代之潮流。总的来说,Spring主要经历了三次重大的版本升级:一为2006年从1.0升级到2.0,在Spring 2.0中新增了XML命名空间、AspectJ及Spring MVC等功能,此外,在Spring 2.5中还引入了注解驱动配置的支持,同时进一步完善了Spring MVC功能;二为2009年从2.5升级到3.0,新增了SpEL、OXM、REST、验证/格式化等功能,全面支持Java 5.0;三为2013年从3.0升级到4.0,新增了Groovy Bean配置、HTML 5/WebSocket支持等功能,全面支持Java 8.0,最低要求是Java 6.0。Spring始终坚持以小版本快速推进、每三年左右发布一个大版本的演化策略,既保证版本的平稳有序,又能紧跟技术发展的潮流。难能可贵的是,Spring即便发生了这么多次版本的升级,其整体框架依然是向下兼容的,在这一点上,Spring明显区别于Struts、Hibernate等框架的升级风格。



Spring技术内幕:深入解析SPRING架构与设计原理(第2版)【带书签】.pdf

精通Spring(清晰书签版).pdf

Spring2.x

Spring3.x

Spring4.x