当前位置:首页 > 工业技术
精通Spring 2.x 企业应用开发详解
精通Spring 2.x 企业应用开发详解

精通Spring 2.x 企业应用开发详解PDF电子书下载

工业技术

  • 电子书积分:21 积分如何计算积分?
  • 作 者:陈雄华著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:9787121047930
  • 页数:788 页
图书介绍:本书深刻揭示了Spring的技术内幕,对IoC、AOP、事务管理等根基性的技术进行了深度的挖掘。读者阅读本书后,不但可以熟练使用Spring的各项功能,对各种Spring内部机制也将了然于胸,真正做到知其然知其所以然。此外,我们还对Spring技术所涉及到的各种Java技术、Java设计模式进行了适时的介绍,通过这些背景知识的准备,读者在理解Spring的各项原理时将不会有任何的障碍。在内容的剪裁上,我们力争做到实用性和深入性的统一。Spring技术涵盖面宽广,内容全面而丰富。我们经过谨慎分析,遴选出满足大多数企业应用的技术进行重点的分析和深入的讲解,忽略掉那些比较偏门的技术。这样我们就很好地达到了主次分明、重点突出的目的,而没有陷入“什么都讲,什么都没有讲透”的窠臼之中。
《精通Spring 2.x 企业应用开发详解》目录

第1篇 概述 2

第1章 Spring概述 2

1.1 认识Spring 3

1.2 Spring带给我们什么 5

1.3 Spring体系结构 6

1.4 Spring 2.0的新功能 7

1.4.1 简化配置文件编写,增强配置文件的扩展性 7

1.4.2 新Bean的作用域 8

1.4.3 AOP的增强 8

1.4.4 持久层的增强 8

1.4.5 展现层的增强 8

1.4.6 其他 9

1.5 Spring对Java版本的要求 9

1.6 如何获取Spring 9

1.7 Spring项目文件结构 11

1.8 Spring的子项目 16

1.8.1 Spring Web Flow 16

1.8.2 Spring Web Services 16

1.8.3 Spring Security(Acegi Security) 17

1.8.4 Spnng LDAP 17

1.8.5 Spring Rich Client 17

1.8.6 Spring Extensions Modules 17

1.8.7 Spring IDE for Eclipse 17

1.8.8 Spring BeanDoc 18

1.8.9 Spring OSGi 18

1.8.10 Spring.NET 18

1.9 和Spring相似的框架 18

1.9.1 PicoContainer 18

1.9.2 NanoContainer 19

1.9.3 Google Guice 19

1.9.4 Jdon Framework 19

1.10 小结 19

第2章 快速入门 20

2.1 实例功能概述 21

2.1.1 比Hello World更适用的实例 21

2.1.2 实例功能简介 21

2.2 环境准备 23

2.2.1 创建库表 23

2.2.2 建立工程 24

2.2.3 类包及Spring配置文件规划 25

2.3 持久层 26

2.3.1 建立领域对象 27

2.3.2 UserDao 28

2.3.3 LoginLogDao 30

2.3.4 在Spring中装配DAO 31

2.4 业务层 32

2.4.1 UserService 32

2.4.2 在Spring中装配Service 34

2.4.3 单元测试 35

2.5 展现层 37

2.5.1 配置Spring MVC框架 37

2.5.2 处理登录请求 39

2.5.3 JSP视图页面 42

2.6 打包和部署 44

2.6.1 通过Ant打包 44

2.6.2 在Tomcat中部署 46

2.7 小结 47

第2篇 Spring核心技术 50

第3章 IoC容器概述 50

3.1 IoC概述 51

3.1.1 通过实例理解IoC的概念 51

3.1.2 IoC的类型 53

3.1.3 通过容器完成依赖关系的建立 55

3.2 相关Java基础知识 56

3.2.1 简单实例 56

3.2.2 类装载器ClassLoader 58

3.2.3 Java反射机制 60

3.3 BeanFactory和ApplicationContext 62

3.3.1 BeanFactory介绍 62

3.3.2 ApplicationContext介绍 66

3.3.3 父子容器 71

3.4 Bean的生命周期 72

3.4.1 BeanFactory中Bean的生命周期 72

3.4.2 ApplicationContext中Bean的生命周期 80

3.5 小结 82

第4章 在IoC容器中装配Bean 83

4.1 Spring配置文档类型 84

4.2 Bean基本配置 86

4.2.1 装配一个Bean 86

4.2.2 Bean的命名 86

4.3 依赖注入 87

4.3.1 属性注入 87

4.3.2 构造函数注入 90

4.3.3 工厂方法注入 94

4.3.4 选择注入方式的考量 95

4.4 注入参数详解 96

4.4.1 字面值 96

4.4.2 引用其他Bean 97

4.4.3 内部Bean 98

4.4.4 null值 99

4.4.5 级联属性 99

4.4.6 集合类型属性 100

4.4.7 简化配置方式 103

4.4.8 自动装配 104

4.5 方法注入 109

4.5.1 lookup方法注入 109

4.5.2 方法替换 110

4.6 <bean>之间的关系 111

4.6.1 继承 112

4.6.2 依赖 113

4.6.3 引用 114

4.7 Bean作用域 115

4.7.1 singleton作用域 115

4.7.2 prototype作用域 117

4.7.3 Web应用环境相关的Bean作用域 117

4.7.4 作用域依赖问题 119

4.8 FactoryBean 120

4.8.1 FactoryBean的工作方式 121

4.8.2 集合FactoryBean 122

4.8.3 属性FactoryBean 124

4.9 小结 126

第5章 Spring容器高级主题 127

5.1 Spring容器技术内幕 128

5.1.1 内部工作机制 128

5.1.2 BeanDefinition 130

5.1.3 InstantiationStrategy 132

5.1.4 BeanWrapper 132

5.2 属性编辑器 133

5.2.1 JavaBean的编辑器 133

5.2.2 Spring默认属性编辑器 137

5.2.3 自定义属性编辑器 137

5.3 使用外部属性文件 140

5.3.1 使用外部属性文件 141

5.3.2 使用加密的属性文件 142

5.4 国际化信息 147

5.4.1 基础知识 147

5.4.2 MessageSource 153

5.4.3 容器级的国际化信息资源 156

5.5 容器事件 157

5.5.1 Spring事件类结构 157

5.5.2 解构Spring事件体系的具体实现 159

5.5.3 一个实例 159

5.6 小结 161

第6章 Spring AOP基础 162

6.1 AOP概述 163

6.1.1 AOP到底是什么 163

6.1.2 AOP术语 165

6.1.3 AOP的实现者 167

6.2 基础知识 167

6.2.1 带有横切逻辑的实例 168

6.2.2 JDK动态代理 170

6.2.3 CGLib动态代理 173

6.2.4 AOP联盟 175

6.2.5 代理知识小结 175

6.3 创建增强类 176

6.3.1 增强类型 176

6.3.2 前置增强 177

6.3.3 后置增强 181

6.3.4 环绕增强 183

6.3.5 异常抛出增强 184

6.3.6 引介增强 186

6.4 创建切面 189

6.4.1 切点类型 189

6.4.2 切面类型 190

6.4.3 静态普通方法名匹配切面 192

6.4.4 静态正则表达式方法匹配切面 194

6.4.5 动态切面 197

6.4.6 流程切面 201

6.4.7 复合切点切面 203

6.4.8 引介切面 205

6.5 自动创建代理 206

6.5.1 实现类介绍 206

6.5.2 BearnNameAutoProxyCreator 207

6.5.3 DefaultAdvisorAutoProxyCreator 209

6.6 小结 210

第7章 基于@AspectJ和Schema的AOP 211

7.1 Spring 2.0对AOP的支持 212

7.2 JDK5.0注解知识快速进阶 212

7.2.1 了解注解 212

7.2.2 一个简单的注解类 213

7.2.3 使用注解 214

7.2.4 访问注解 215

7.3 着手使用@AspectJ 216

7.3.1 使用前的准备 216

7.3.2 一个简单的例子 216

7.3.3 如何通过配置使用@AspectJ切面 218

7.4 @AspectJ语法基础 219

7.4.1 切点表达式函数 220

7.4.2 在函数入参中使用通配符 221

7.4.3 逻辑运算符 221

7.4.4 不同增强类型 222

7.4.5 引介增强用法 223

7.5 切点函数详解 225

7.5.1 @annotation() 225

7.5.2 execution() 226

7.5.3 args()和@args() 228

7.5.4 within() 229

7.5.5 @within()和@target() 230

7.5.6 target()的this() 231

7.6 @AspectJ进阶 233

7.6.1 切点复合运算 233

7.6.2 命名切点 234

7.6.3 增强织入的顺序 235

7.6.4 访问连接点信息 236

7.6.5 绑定连接点方法入参 237

7.6.6 绑定代理对象 239

7.6.7 绑定类注解对象 240

7.6.8 绑定返回值 240

7.6.9 绑定抛出的异常 241

7.7 基于Schema配置切面 242

7.7.1 一个简单切面的配置 242

7.7.2 配置命名切点 244

7.7.3 各种增强类型的配置 245

7.7.4 绑定连接点信息 248

7.7.5 Advisor配置 249

7.8 混合切面类型 249

7.8.1 混合使用各种切面类型 250

7.8.2 各种切面类型总结 251

7.9 集成AspectJ 252

7.9.1 使用AspectJ LTW 252

7.9.2 管理容器外的对象 253

7.9.3 使用Spring IoC管理AspectJ切面 258

7.10 小结 259

第3篇 数据库访问 262

第8章 Spring对DAO的支持 262

8.1 Spring的DAO理念 263

8.2 统一的异常体系 263

8.2.1 Spring的DAO异常体系 263

8.2.2 JDBC的异常转换器 265

8.2.3 其他持久技术的异常转换器 266

8.3 统一数据访问模板 266

8.3.1 使用模板和回调机制 267

8.3.2 Spring为不同持久化技术所提供的模板类 269

8.4 数据源 270

8.4.1 配置一个数据源 270

8.4.2 获取JNDI数据源 273

8.4.3 Spring的数据源实现类 273

8.5 小结 274

第9章 Spring的事务管理 275

9.1 数据库事务基础知识 276

9.1.1 何为数据库事务 276

9.1.2 数据并发的问题 277

9.1.3 数据库锁机制 279

9.1.4 事务隔离级别 280

9.1.5 JDBC对事务支持 281

9.2 ThreadLocal基础知识 282

9.2.1 ThreadLocal是什么 283

9.2.2 ThreadLocal的接口方法 283

9.2.3 一个TheadLocal实例 284

9.2.4 Thread同步机制的比较 285

9.2.5 Spring使用ThreadLocal解决线程安全问题 286

9.3 Spring对事务管理的支持 288

9.3.1 事务管理关键抽象 288

9.3.2 Spring的事务管理器实现类 291

9.3.3 事务同步管理器 294

9.3.4 事务传播行为 295

9.4 编程式的事务管理 298

9.5 使用XML配置声明式事务 299

9.5.1 一个需要事务配置的服务接口 301

9.5.2 使用原始的TransactionProxy FactoryBean 302

9.5.3 基于tx/aop命名空间的配置 304

9.6 使用注解配置声明式事务 307

9.6.1 使用@Transactional注解 307

9.6.2 通过AspectJ LTW引入事务切面 310

9.7 JTA事务管理 311

9.7.1 集成JOTM,在Spring中配置JTA事务 311

9.7.2 使用Tomcat/JOTM/Spring提供JTA事务 315

9.7.3 在特定应用服务器使用JTA 317

9.8 小结 318

第10章 使用Spring JDBC访问数据库 319

10.1 使用Spring JDBC 320

10.1.1 JdbcTemplate小试牛刀 320

10.1.2 通过JdbcDaoSupport使用Jdbc Template 321

10.2 基本的数据操作 322

10.2.1 更改数据 322

10.2.2 返回数据库的表自增主键值 324

10.2.3 批量更改数据 326

10.2.4 查询数据 327

10.2.5 查询单值数据 330

10.2.6 调用存储过程 331

10.3 BLOB/CLOB类型数据的操作 334

10.3.1 如何获取本地数据连接 334

10.3.2 相关的操作接口 335

10.3.3 插入Lob类型的数据 337

10.3.4 以块数据方式读取Lob数据 339

10.3.5 以流数据方式读取Lob数据 340

10.4 自增键和行集 341

10.4.1 自增键的使用 341

10.4.2 以行集返回数据 344

10.5 其他类型的JdbcTemplate 344

10.5.1 NamedParameterJdbcTemplate 345

10.5.2 SimpleJdbcTemplate 346

10.6 以OO方式访问数据库 348

10.6.1 使用MappingSqlQuery查询数据 348

10.6.2 使用SqlUpdate更新数据 349

10.6.3 使用StoredProcedure执行存储过程 350

10.6.4 SqlFunction类 351

10.7 小结 352

第11章 使用JPA访问数据库 353

11.1 JPA概述 354

11.1.1 什么是JPA 354

11.1.2 JPA的发展及影响 354

11.1.3 目前已经有哪些实现 355

11.2 JPA快速进阶 355

11.2.1 实体对象 356

11.2.2 使用注解元数据 357

11.2.3 使用XML元数据 361

11.2.4 JPA的体系结构及重要的API 363

11.2.5 JPA的查询语言 365

11.3 使用LocalEntityManagerFactoryBean 368

11.3.1 认识JpaTemplate 368

11.3.2 使用JpaTemplate编写数据访问类 369

11.3.3 编写相应的配置信息 370

11.3.4 测试BbtForum 373

11.4 JVM Class文件字节码转换基础知识 374

11.4.1 java.lang.instrument包的工作原理 374

11.4.2 如何向JVM中注册转换器 375

11.4.3 使用JVM启动参数注册转换器的问题 377

11.4.4 JPA的ClassTransformer SPI接口 378

11.5 使用LocalContainerEntityManager FactoryBean 378

11.5.1 相应的配置信息 378

11.5.2 使用JVM代理启动参数实施织入器 382

11.5.3 在测试环境下实施织入器 382

11.5.4 作为Web应用部署时实施织入器 383

11.5.5 处理多个持久化单元 385

11.6 使用原生的JPA 386

11.7 事务处理 387

11.8 小结 388

第12章 整合其他ORM框架 389

12.1 Spring整合ORM技术 390

12.2 在Spring中使用Hibernate 391

12.2.1 配置SessionFactory 391

12.2.2 使用HibernateTemplate 394

12.2.3 处理LOB类型数据 396

12.2.4 添加Hibernate事件监听器 398

12.2.5 使用原生Hibernate API 399

12.2.6 使用JPA注解的Hibernate 399

12.2.7 事务处理 401

12.2.8 延迟加载的问题 401

12.3 在Spring中使用iBatis 402

12.3.1 配置SqlMapClient 403

12.3.2 使用SqlMapClientTemplate 404

12.3.3 处理LOB类型数据 405

12.4 混合使用多种持久化技术 407

12.4.1 透析Spring中混合持久化技术的使用 407

12.4.2 一个使用混合持久化技术的实例 408

12.5 DAO层设计 410

12.5.1 DAO基类的设计 410

12.5.2 查询接口方法的设计 412

12.6 小结 414

第4篇 业务层应用 416

第13章 任务调度和异步执行器 416

13.1 任务调度概述 417

13.2 Quartz快速进阶 417

13.2.1 Quartz基础结构 418

13.2.2 使用SimpleTrigger 420

13.2.3 使用CronTrigger 422

13.2.4 使用Calendar 425

13.2.5 任务调度信息存储 427

13.3 在Spring中使用Quartz 430

13.3.1 创建JobDetail 430

13.3.2 创建Trigger 432

13.3.3 创建Scheduler 434

13.4 Spring中使用JDK Timer 435

13.4.1 Timer和TimerTask 436

13.4.2 Spring对JDK Timer的支持 438

13.5 Spring对JDK 5.0Executor的支持 439

13.5.1 了解JDK 5.0的Executor 440

13.5.2 Spring对Executor所提供的抽象 442

13.6 实际应用中的任务调度 443

13.6.1 如何产生任务 444

13.6.2 任务调度对应用程序集群的影响 446

13.6.3 Web应用程序中调度器的启动和关闭问题 447

13.7 小结 449

第14章 JavaMail发送邮件 450

14.1 JavaMail快速进阶 451

14.1.1 JavaMail概述 451

14.1.2 JavaMail的关键对象 452

14.1.3 使用JavaMail发送邮件 456

14.1.4 处理SSL加密传输协议邮件 458

14.2 Spring的邮件支持 459

14.2.1 邮件发送高级抽象层 459

14.2.2 Spring对JavaMail的支持 461

14.3 发送各种形式的邮件 464

14.3.1 发送纯文本邮件 465

14.3.2 发送HTML类型的邮件 466

14.3.3 发送带内嵌文件的邮件 467

14.3.4 发送带附件的邮件 468

14.3.5 发送纯文本和HTML双版本的邮件 469

14.4 在实际应用中发送邮件 471

14.4.1 使用邮件模板 472

14.4.2 异步发送邮件 474

14.5 小结 475

第15章 在Spring中使用JMS 477

15.1 JMS快速进阶 478

15.1.1 JMS的两种消息类型 479

15.1.2 JMS受管理的对象 479

15.1.3 JMS的一些重要接口 480

15.1.4 JMS消息的结构 481

15.1.5 消息收发的机制 483

15.1.6 发送消息 484

15.1.7 接收消息 485

15.2 JMS提供者 487

15.2.1 JMS提供者概述 487

15.2.2 使用ActiveMQ 488

15.3 Spring对JMS的支持 489

15.3.1 JMS模板类 490

15.3.2 JMS异常映射 491

15.4 使用回调接口发送/接收消息 491

15.4.1 使用send()发送消息 491

15.4.2 使用receive()接收消息 494

15.4.3 使用execute()方法 495

15.5 使用消息转换器发送/接收消息 497

15.5.1 消息转换器 497

15.5.2 发送POJO消息 498

15.5.3 接收POJO消息 500

15.6 消息过滤及异步消息接收 500

15.6.1 对消息进行过滤接收 501

15.6.2 消息监听器容器 501

15.6.3 异步消息接收 503

15.6.4 异步消息接收适配器 504

15.7 JMS事务管理 506

15.7.1 本地事务 506

15.7.2 JTA事务 507

15.7.3 消息重复接收问题 508

15.8 小结 509

第16章 在Spring中开发Web Service 511

16.1 Web Service简介 512

16.1.1 Web Service相关概念 512

16.1.2 SOAP——简单对象传输协议 513

16.1.3 WSDL——Web Service描述语言 513

16.1.4 UDDI——统一描述、发现和集成 514

16.2 XFire简介 514

16.2.1 XFire特性 515

16.2.2 XFire体系及重要API 515

16.2.3 XFire类库说明 517

16.3 将POJOBean导出为WebService 518

16.3.1 使用导出器导出Web Service 518

16.3.2 配置web.xml 519

16.3.3 使用JSR 181注解导出Web Service 521

16.4 各种客户端调用方式 522

16.4.1 使用服务端的窄接口类 522

16.4.2 使用WSDL文件构造客户端程序 524

16.4.3 根据WSDL生成客户端代码 525

16.5 Web Service的测试 526

16.5.1 基于SOAP报文的纯服务端测试 527

16.5.2 在JVM模式通过客户端进行测试 529

16.6 Web Service安全 530

16.6.1 认识WS-Security 530

16.6.2 XFire应用WS-Security的总体方案 531

16.7 使用WS-Security 532

16.7.1 准备工作 532

16.7.2 使用用户名/密码进行身份认证 534

16.7.3 对SOAP报文进行数字签名 539

16.7.4 对SOAP报文体进行加密 542

16.7.5 组合安全策略 546

16.8 小结 550

第17章 使用Acegi实施应用系统安全 552

17.1 认识Acegi 553

17.1.1 Acegi概述 553

17.1.2 Acegi体系结构 554

17.1.3 重要组件类介绍 556

17.1.4 用户认证过程 558

17.1.5 安全对象访问控制 559

17.1.6 Acegi版本升级的一些重大变化 560

17.2 将Acegi集成到Web应用程序中 561

17.2.1 代理Acegi的过滤器 562

17.2.2 使用代理过滤器链对处理HTTP请求 563

17.3 身份认证管理 565

17.3.1 基于内存存储用户信息的身份认证 565

17.3.2 基于数据库存储用户信息的认证 570

17.3.3 密码加密问题 572

17.3.4 成功登录系统的后置处理 574

17.3.5 在多个请求之间共享SecurityContext 575

17.3.6 退出系统的后置处理 576

17.3.7 实施Remember-Me认证 577

17.4 安全对象访问控制 581

17.4.1 匿名用户权限信息 582

17.4.2 URL资源访问控制 584

17.4.3 异常转换过滤器 587

17.4.4 业务类方法访问控制 588

17.5 其他 590

17.5.1 Acegi标签库 590

17.5.2 Session并发控制 591

17.5.3 HTTPS安全通道 593

17.6 小结 597

第18章 动态语言支持 599

18.1 动态语言介绍 600

18.1.1 动态语言的特性及适用场合 600

18.1.2 Ruby快速入门 601

18.1.3 Groovy快速入门 606

18.1.4 BeanShell快速入门 608

18.2 在Spring中使用动态语言 611

18.2.1 Spring对动态语言的支持 611

18.2.2 基于JRuby的Bean 612

18.2.3 基于Groovy的Bean 614

18.2.4 基于BeanShell的Bean 614

18.3 其他支持功能 615

18.3.1 动态刷新 615

18.3.2 内联脚本 616

18.4 小结 617

第5篇 展现层应用 620

第19章 Spring MVC之一 620

19.1 Spring MVC概述 621

19.1.1 体系结构 621

19.1.2 认识并配置DispatcherServlet 622

19.1.3 一个包含以上步骤的实例 628

19.2 将请求映射到处理器 631

19.2.1 HandlerExecutionChain处理器链 631

19.2.2 处理器映射HandlerMapping 633

19.2.3 处理器的拦截器 635

19.2.4 多个处理器映射器 636

19.3 各种类型的控制器 637

19.3.1 参数映射控制器 639

19.3.2 文件名映射控制器 639

19.3.3 简单类型控制器 640

19.3.4 命令控制器 641

19.3.5 表单控制器 643

19.3.6 中文乱码问题 652

19.3.7 向导控制器 653

19.3.8 多动作控制器 659

19.3.9 一次性控制器 661

19.4 使用Spring文件上传功能 662

19.4.1 配置multipart请求解析器 662

19.4.2 编写控制器和文件上传表单页面 663

19.5 本地化解析 665

19.5.1 使用Cookie本地化解析器 666

19.5.2 使用Session本地化解析器 667

19.5.3 使用本地化更改拦截器 668

19.6 使用主题 669

19.6.1 主题资源及样式文件的组织 669

19.6.2 主题样式的引用 671

19.6.3 主题资源和主题解析器 672

19.7 异常处理 673

19.8 小结 673

第20章 Spring MVC之二 675

20.1 视图和视图解析器 676

20.1.1 认识视图 676

20.1.2 认识视图解析器 677

20.1.3 使用视图解析器 678

20.2 Spring MVC表单标签 682

20.2.1 form标签 683

20.2.2 输入组件标签 684

20.2.3 单选框和复选框组件标签 684

20.2.4 下拉框组件标签 688

20.2.5 错误标签 690

20.3 使用模板视图 690

20.3.1 FreeMarker概述 690

20.3.2 常见的FreeMarker特殊标记 692

20.3.3 编写渲染模型数据的模型 693

20.3.4 配置FreeMarker环境和视图 694

20.3.5 使用Spring宏 695

20.3.6 使用Velocity模板 698

20.4 使用Tiles进行页面布局 699

20.4.1 编写一个Tiles模板 699

20.4.2 使用Tiles视图 702

20.5 产出非HTML的输出 703

20.5.1 使用PDF文档进行输出 703

20.5.2 使用Excel进行输出 706

20.6 小结 709

第21章 集成其他Web框架 710

21.1 集成Struts 2 711

21.1.1 Struts 2概述 711

21.1.2 集成Struts 2的步骤 712

21.1.3 注册用户实例 714

21.2 集成Tapestry 718

21.2.1 Tapestry为集成Spring提供的类 718

21.2.2 Tapestry集成Spring的具体配置步骤 720

21.3 集成JSF 722

21.3.1 一个简单的JSF程序 722

21.3.2 使用JSF-Spring集成Spring 724

21.4 小结 725

第6篇 其他 728

第22章 Spring应用的测试 728

22.1 单元测试和集成测试 729

22.1.1 单元测试 729

22.1.2 集成测试 729

22.2 JUnit测试框架 730

22.2.1 认识JUnit框架 730

22.2.2 测试固件(Fixture) 731

22.2.3 测试用例(TestCase) 732

22.2.4 测试套件(TestSuite) 732

22.2.5 测试运行器 733

22.3 进行单元测试 734

22.3.1 如何创建模拟类 734

22.3.2 对UserServiceImpl进行单元测试 734

22.3.3 Spring提供的模拟类 738

22.4 在Spring中进行集成测试 743

22.4.1 传统集成测试的不足之处 743

22.4.2 Spring提供的测试帮助类 745

22.4.3 一般集成测试 747

22.4.4 方便地恢复测试数据库现场 751

22.4.5 注解驱动的集成测试 754

22.5 批量执行测试用例 756

22.6 小结 758

第23章 Spring工具类盘点 760

23.1 文件资源操作 761

23.1.1 加载文件资源 761

23.1.2 文件操作 763

23.2 Web相关工具类 765

23.2.1 操作Servlet API的工具类 766

23.2.2 Spring所提供的过滤器和监听器 767

23.3 特殊字符转义 770

23.3.1 HTML特殊字符转义 770

23.3.2 JavaScript特殊字符转义 772

23.3.3 SQL特殊字符转义 774

23.4 杂项 774

23.4.1 方法入参检测工具类 775

23.4.2 操作DOM的工具类 776

23.5 小结 777

附录A 各种数据库连接配置及驱动 778

附录B IDE开发环境设置 780

返回顶部