VII
第 1 篇 概述
第 1章 Spring概述 .......................................... 2
1.1 认识 Spring .............................................. 3
1.2 关于 SpringSource ................................... 4
1.3 Spring带给我们什么 .............................. 5
1.4 Spring体系结构 ...................................... 6
1.5 Spring 3.0的新功能 ................................ 8
1.5.1 核心 API 更新到 Java 5.0 ................. 8
1.5.2 Spring 表达式语言 ........................... 8
1.5.3 可通过 Java 类提供 IoC 配置信息 .... 9
1.5.4 通用类型转换系统和属性格式化
1.5.4 系统 .............................................. 10
1.5.5 数据访问层新增 OXM 功能 ........... 10
1.5.6 Web 层的增强 ............................... 10
1.5.7 其他 .............................................. 11
1.6 Spring对 Java版本的要求 ................... 11
1.7 如何获取 Spring .................................... 11
1.8 Spring项目文件结构 ............................ 12
1.8.1 根目录下的文件 ............................ 13
1.8.2 根目录下的文件夹 ........................ 13
1.8.3 构建 Spring 项目 ........................... 13
1.8.4 第三方依赖类库介绍 ..................... 14
1.9 Spring的子项目 .................................... 18
1.9.1 Spring Web Flow ............................ 18
1.9.2 Spring Web Services ....................... 19
1.9.3 Spring Security (Acegi Security) ...... 19
1.9.4 Spring LDAP ................................. 19
1.9.5 Spring Rich Client .......................... 20
1.9.6 Spring BlazeDS Integration ............. 20
1.9.7 Spring IDE for Eclipse .................... 20
1.9.8 Spring BeanDoc ............................. 20
1.9.9 Spring Dynamic Modules ................ 20
1.9.10 Spring .NET ................................. 20
1.10 SpringSource的产品 ........................... 21
1.10.1 应用构建 ..................................... 21
1.10.2 应用运行 ..................................... 21
1.10.3 应用管理 ..................................... 21
1.10.4 云计算平台 ................................. 22
1.11 和 Spring相似的框架 ......................... 22
1.11.1 PicoContainer ............................... 22
1.11.2 NanoContainer ............................. 22
1.11.3 Google Guice ............................... 22
1.11.4 Jdon Framework ........................... 22
1.12 小结 ..................................................... 23
第 2章 快速入门 ........................................... 24
2.1 实例功能概述 ............................................ 25
2.1.1 比 Hello World 更适用的实例 ......... 25
2.1.2 实例功能简介 ................................... 25
2.2 环境准备 .................................................... 27
2.2.1 创建库表 ........................................... 27
2.2.2 建立工程 ........................................... 28
2.2.3 类包及 Spring 配置文件规划 .......... 30
2.3 持久层 ......................................................... 31
2.3.1 建立领域对象 ................................... 31
2.3.2 UserDao ............................................ 32
2.3.3 LoginLogDao .................................... 35
2.3.4 在 Spring 中装配 DAO ..................... 35
VIII
2.4 业务层 ......................................................... 37
2.4.1 UserService ....................................... 37
2.4.2 在 Spring 中装配 Service .................. 38
2.4.3 单元测试 ........................................... 40
2.5 展现层 ......................................................... 42
2.5.1 配置 Spring MVC 框架 .................... 42
2.5.2 处理登录请求 ................................... 44
2.5.3 JSP 视图页面 .................................... 46
2.6 运行Web应用 ........................................... 48
2.7 小结 ............................................................. 49
第 2 篇 IoC 和 AOP
第 3章 IoC容器概述 ..................................... 52
3.1 IoC概述 ...................................................... 53
3.1.1 通过实例理解 IoC 的概念 ............... 53
3.1.2 IoC 的类型 ........................................ 55
3.1.3 通过容器完成依赖关系的注入 ....... 57
3.2 相关 Java基础知识 .................................. 58
3.2.1 简单实例 ........................................... 58
3.2.2 类装载器 ClassLoader ...................... 60
3.2.3 Java 反射机制 ................................... 63
3.3 资源访问利器........................................ 65
3.3.1 资源抽象接口 ................................... 65
3.3.2 资源加载 ........................................... 68
3.4 BeanFactory和 ApplicationContext ...... 70
3.4.1 BeanFactory 介绍 .............................. 70
3.4.2 ApplicationContext 介绍 ................... 73
3.4.3 父子容器 ........................................... 80
3.5 Bean的生命周期 .................................. 80
3.5.1 BeanFactory 中 Bean 的生命周期 .... 80
3.5.2 ApplicationContext 中 Bean 的生命
3.5.2 周期 ................................................... 89
3.6 小结 ....................................................... 91
第 4章 在 IoC容器中装配 Bean .................... 92
4.1 Spring配置概述 .................................... 93
4.1.1 Spring 容器高层视图........................ 93
4.1.2 基于 XML 的配置 ............................ 94
4.2 Bean基本配置 ...................................... 96
4.2.1 装配一个 Bean .................................. 96
4.2.2 Bean 的命名 ...................................... 97
4.3 依赖注入 ............................................... 98
4.3.1 属性注入 ........................................... 98
4.3.2 构造函数注入 ................................. 101
4.3.3 工厂方法注入 ................................. 105
4.3.4 选择注入方式的考量 ..................... 106
4.4 注入参数详解 ..................................... 107
4.4.1 字面值 ............................................. 107
4.4.2 引用其他 Bean ................................ 108
4.4.3 内部 Bean........................................ 110
4.4.4 null 值 ............................................. 110
4.4.5 级联属性 ......................................... 110
4.4.6 集合类型属性 ................................. 111
4.4.7 简化配置方式 ................................. 115
4.4.8 自动装配 ......................................... 118
4.5 方法注入 ............................................. 119
4.5.1 lookup 方法注入 ............................. 119
4.5.2 方法替换 ......................................... 120
4.6
之间的关系 ............................. 121
4.6.1 继承 ................................................. 121
4.6.2 依赖 ................................................. 122
4.6.3 引用 ................................................. 123
4.7 整合多个配置文件 ............................. 124
4.8 Bean作用域 ........................................ 125
4.8.1 singleton 作用域 ............................. 125
4.8.2 prototype 作用域 ............................. 126
4.8.3 Web 应用环境相关的 Bean
4.8.3 作用域 ............................................. 127
4.8.4 作用域依赖问题 ............................. 129
4.9 FactoryBean ......................................... 130
4.10 基于注解的配置 ............................... 132
4.10.1 使用注解定义 Bean ...................... 132
4.10.2 使用注解配置信息启动 Spring
4.10.2 容器 ............................................... 132
4.10.3 自动装配 Bean .............................. 134
IX
4.10.4 Bean作用范围及生命过程方法 ..... 137
4.11 基于 Java类的配置 ........................... 139
4.11.1 使用 Java类提供Bean定义信息 ..... 139
4.11.2 使用基于 Java 类的配置信息启动
4.11.2 Spring 容器 ................................... 142
4.12 不同配置方式比较 ............................ 144
4.13 小结 ................................................... 146
第 5章 Spring容器高级主题 ....................... 147
5.1 Spring容器技术内幕 .......................... 148
5.1.1 内部工作机制 ................................. 148
5.1.2 BeanDefinition ................................ 151
5.1.3 InstantiationStrategy ........................ 152
5.1.4 BeanWrapper ................................... 152
5.2 属性编辑器.......................................... 153
5.2.1 JavaBean 的编辑器 ......................... 154
5.2.2 Spring 默认属性编辑器 .................. 157
5.2.3 自定义属性编辑器 ......................... 158
5.3 使用外部属性文件 .............................. 161
5.3.1 使用外部属性文件 ......................... 161
5.3.2 使用加密的属性文件 ..................... 163
5.3.3 属性文件自身的引用 ..................... 167
5.4 引用 Bean的属性值 ........................... 168
5.5 国际化信息.......................................... 170
5.5.1 基础知识 ......................................... 170
5.5.2 MessageSource ................................ 175
5.5.3 容器级的国际化信息资源 ............. 178
5.6 容器事件 ............................................. 179
5.6.1 Spring 事件类结构 ......................... 180
5.6.2 解构 Spring 事件体系的具体
5.6.2 实现 ................................................. 181
5.6.3 一个实例 ......................................... 182
5.7 小结 ..................................................... 184
第 6章 Spring AOP基础 ............................. 185
6.1 AOP概述 ............................................ 186
6.1.1 AOP 到底是什么 ............................ 186
6.1.2 AOP 术语 ........................................ 188
6.1.3 AOP 的实现者 ................................ 190
6.2 基础知识 ............................................. 190
6.2.1 带有横切逻辑的实例 ..................... 190
6.2.2 JDK 动态代理................................. 193
6.2.3 CGLib 动态代理 ............................. 196
6.2.4 AOP 联盟 ........................................ 198
6.2.5 代理知识小结 ................................. 198
6.3 创建增强类 ......................................... 199
6.3.1 增强类型 ......................................... 199
6.3.2 前置增强 ......................................... 200
6.3.3 后置增强 ......................................... 204
6.3.4 环绕增强 ......................................... 205
6.3.5 异常抛出增强 ................................. 206
6.3.6 引介增强 ......................................... 208
6.4 创建切面 .............................................. 211
6.4.1 切点类型 ......................................... 212
6.4.2 切面类型 ......................................... 213
6.4.3 静态普通方法名匹配切面 ............. 215
6.4.4 静态正则表达式方法匹配切面 ...... 217
6.4.5 动态切面 ......................................... 220
6.4.6
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
切面 ......................................... 223
6.4.7 复合切点切面 ................................. 225
6.4.8 引介切面 ......................................... 227
6.5 自动创建代理 ..................................... 228
6.5.1 实现类介绍 ..................................... 229
6.5.2 BeanNameAutoProxyCreator .......... 229
6.5.3 DefaultAdvisorAutoProxyCreator ..... 231
6.6 小结 ..................................................... 232
第 7章 基于@AspectJ和Schema的AOP .... 233
7.1 Spring对 AOP的支持 ........................ 234
7.2 JDK 5.0注解知识快速进阶 ............... 234
7.2.1 了解注解 ......................................... 234
7.2.2 一个简单的注解类 ......................... 235
7.2.3 使用注解 ......................................... 236
7.2.4 访问注解 ......................................... 237
7.3 着手使用@AspectJ ........................... 238
7.3.1 使用前的准备 ................................. 238
X
7.3.2 一个简单的例子 ............................. 239
7.3.3 如何通过配置使用@AspectJ
7.3.3 切面 ................................................. 241
7.4 @AspectJ语法基础 ............................ 242
7.4.1 切点表达式函数 ............................. 242
7.4.2 在函数入参中使用通配符 ............. 243
7.4.3 逻辑运算符 ..................................... 244
7.4.4 不同增强类型 ................................. 244
7.4.5 引介增强用法 ................................. 245
7.5 切点函数详解...................................... 247
7.5.1 @annotation() .................................. 247
7.5.2 execution() ....................................... 249
7.5.3 args()和@args() ............................... 250
7.5.4 within() ............................................ 252
7.5.5 @within()和@target() ..................... 252
7.5.6 target()的 this() ................................ 253
7.6 @AspectJ进阶 .................................... 255
7.6.1 切点复合运算 ................................. 255
7.6.2 命名切点 ......................................... 256
7.6.3 增强织入的顺序 ............................. 257
7.6.4 访问连接点信息 ............................. 258
7.6.5 绑定连接点方法入参 ..................... 259
7.6.6 绑定代理对象 ................................. 261
7.6.7 绑定类注解对象 ............................. 261
7.6.8 绑定返回值 ..................................... 262
7.6.9 绑定抛出的异常 ............................. 263
7.7 基于 Schema配置切面 ....................... 264
7.7.1 一个简单切面的配置 ..................... 264
7.7.2 配置命名切点 ................................. 265
7.7.3 各种增强类型的配置 ..................... 267
7.7.4 绑定连接点信息 ............................. 269
7.7.5 Advisor 配置 ................................... 270
7.8 混合切面类型...................................... 271
7.8.1 混合使用各种切面类型 ................. 272
7.8.2 各种切面类型
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
......................... 273
7.9 JVM Class文件字节码转换基础
7.9 知识 ..................................................... 273
7.9.1 java.lang.instrument 包的工作
7.9.1 原理 ................................................. 274
7.9.2 如何向 JVM 中注册转换器 ........... 275
7.9.3 使用 JVM 启动参数注册转换器
7.9.3 的问题 ............................................. 277
7.10 使用 LTW织入切面 ......................... 277
7.10.1 Spring 的 LoadTimeWeaver .......... 278
7.10.2 使用 LTW 织入一个切面 ............. 280
7.10.3 在 Tomcat 下的配置 ..................... 282
7.10.4 在其他 Web 应用服务器下的
7.10.4 配置 ............................................... 283
7.11 小结 ................................................... 283
第 3 篇 数据访问
第 8章 Spring对 DAO的支持 ..................... 286
8.1 Spring的 DAO理念 ........................... 287
8.2 统一的异常体系 ................................. 287
8.2.1 Spring 的 DAO 异常体系 ............... 288
8.2.2 JDBC 的异常转换器 ...................... 290
8.2.3 其他持久技术的异常转换器 ......... 290
8.3 统一数据访问
模板
个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载
............................. 291
8.3.1 使用模板和回调机制 ..................... 291
8.3.2 Spring 为不同持久化技术所提供
8.3.2 的模板类 ......................................... 293
8.4 数据源 ................................................. 294
8.4.1 配置一个数据源 ............................. 294
8.4.2 获取 JNDI 数据源 .......................... 299
8.4.3 Spring 的数据源实现类 ................. 299
8.5 小结 ..................................................... 300
第 9章 Spring的事务管理 ........................... 301
9.1 数据库事务基础知识 ......................... 302
9.1.1 何为数据库事务 ............................. 302
9.1.2 数据并发的问题 ............................. 303
9.1.3 数据库锁机制 ................................. 305
9.1.4 事务隔离级别 ................................. 306
9.1.5 JDBC 对事务支持 .......................... 306
9.2 ThreadLocal基础知识 ........................ 308
XI
9.2.1 ThreadLocal 是什么 ........................ 308
9.2.2 ThreadLocal 的接口方法 ................ 309
9.2.3 一个 TheadLocal 实例 .................... 310
9.2.4 与 Thread 同步机制的比较 ............ 311
9.2.5 Spring 使用 ThreadLocal 解决线程
9.2.5 安全问题 ......................................... 312
9.3 Spring对事务管理的支持 .................. 313
9.3.1 事务管理关键抽象 ......................... 314
9.3.2 Spring 的事务管理器实现类 .......... 317
9.3.3 事务同步管理器 ............................. 319
9.3.4 事务传播行为 ................................. 321
9.4 编程式的事务管理 .............................. 321
9.5 使用 XML配置声明式事务 ............... 322
9.5.1 一个将被实施事务增强的服务
9.5.1 接口 ................................................. 324
9.5.2 使用原始的
9.5.2 TransactionProxyFactoryBean ......... 325
9.5.3 基于 tx/aop 命名空间的配置 ......... 327
9.6 使用注解配置声明式事务 .................. 330
9.6.1 使用@Transactional 注解 ............... 330
9.6.2 通过 AspectJ LTW 引入事务
9.6.2 切面 ................................................. 334
9.7 集成特定的应用服务器 ...................... 335
9.7.1 BEA WebLogic ................................ 336
9.7.2 BEA WebLogic ................................ 336
9.8 小结 ..................................................... 336
第 10章 Spring的事务管理难点剖析 ........... 337
10.1 DAO和事务管理的牵绊 .................. 338
10.1.1 JDBC 访问数据库 ........................ 338
10.1.2 Hibernate 访问数据库 .................. 340
10.2 应用分层的迷惑 ................................ 342
10.3 事务方法嵌套调用的迷茫 ................ 346
10.3.1 Spring 事务传播机制回顾 ............ 346
10.3.2 相互嵌套的服务方法 ................... 347
10.4 多线程的困惑 .................................... 350
10.4.1 Spring 通过单实例化 Bean 简化
10.4.1 多线程问题 ................................... 350
10.4.2 启动独立线程调用事务方法 ....... 350
10.5 联合军种作战的混乱 ....................... 352
10.5.1 Spring 事务管理器的应对 ........... 352
10.5.2 Hibernate+Spring JDBC 混合框架
10.5.2 的事务管理 ................................... 353
10.6 特殊方法成漏网之鱼 ....................... 357
10.6.1 哪些方法不能实施 Spring AOP
10.6.1 事务 ............................................... 357
10.6.2 事务增强遗漏实例 ....................... 357
10.7 数据连接泄漏 ................................... 361
10.7.1 底层连接资源的访问问题 ........... 361
10.7.2 Spring JDBC 数据连接泄漏 ......... 362
10.7.3 通过 DataSourceUtils 获取数据
10.7.3 连接 ............................................... 365
10.7.4 通过 DataSourceUtils 获取数据
10.7.4 连接 ............................................... 367
10.7.5 JdbcTemplate 如何做到对连接
10.7.5 泄漏的免疫 ................................... 369
10.7.6 使用 TransactionAware
10.7.6 DataSourceProxy ........................... 369
10.7.7 其他数据访问技术的等价类 ....... 370
10.8 小结 ................................................... 371
第 11章 使用 Spring JDBC访问数据库 ....... 373
11.1 使用 Spring JDBC ............................. 374
11.1.1 JDBCTemplate 小试牛刀 .............. 374
11.1.2 在 DAO 中使用 JDBC-
11.1.2 Template ........................................ 375
11.2 基本的数据操作................................ 376
11.2.1 更改数据 ....................................... 376
11.2.2 返回数据库的表自增主键值 ....... 379
11.2.3 批量更改数据 ............................... 381
11.2.4 查询数据 ....................................... 382
11.2.5 查询单值数据 ............................... 385
11.2.6 调用存储过程 ............................... 387
11.3 BLOB/CLOB类型数据的操作 ........ 389
11.3.1 如何获取本地数据连接 ............... 389
11.3.2 相关的操作接口 ........................... 391
XII
11.3.3 插入 Lob 类型的数据 ................... 392
11.3.4 以块数据方式读取 Lob 数据 ....... 395
11.3.5 以流数据方式读取 Lob 数据 ....... 395
11.4 自增键和行集 .................................... 396
11.4.1 自增键的使用 ............................... 396
11.4.2 如何规划主键
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
....................... 398
11.4.3 以行集返回数据 ........................... 400
11.5 其他类型的 JDBCTemplate .............. 401
11.5.1 NamedParameterJDBC-
11.5.1 Template ........................................ 401
11.5.2 SimpleJDBCTemplate ................... 403
11.6 以 OO方式访问数据库 .................... 403
11.6.1 使用 MappingSqlQuery 查询
11.6.1 数据 ............................................... 403
11.6.2 使用 SqlUpdate 更新数据 ............. 405
11.6.3 使用 StoredProcedure 执行存储
11.6.3 过程 ............................................... 406
11.6.4 SqlFunction 类 ............................... 408
11.7 小结 .................................................... 408
第 12章 整合其他 ORM框架 ...................... 410
12.1 Spring整合 ORM技术 ..................... 411
12.2 在 Spring中使用 Hibernate ............ 412
12.2.1 配置 SessionFactory ...................... 412
12.2.2 使用 HibernateTemplate ................ 415
12.2.3 处理 LOB 类型数据 ..................... 419
12.2.4 添加 Hibernate 事件监听器 .......... 421
12.2.5 使用原生 Hibernate API ............... 421
12.2.6 使用注解配置 ............................... 422
12.2.7 事务处理 ....................................... 424
12.2.8 延迟加载的问题 ........................... 425
12.3 在 Spring中使用 myBatis ................. 426
12.3.1 配置 SqlMapC