《Spring从入门到精通》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:郭锋编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302138117
  • 页数:484 页
图书介绍:本书介绍Spring的体系结构和相关知识点,如基础概念、核心容器、事务处理、定时器等。

第1章 Spring概述 2

1.1 Spring的历史 2

1.2 Spring简介 2

1.2.1 Spring框架介绍 2

第1篇 Spring入门 2

1.2.2 Spring的特点 4

1.3 如何学习Spring 4

1.4 网络上的资源 5

1.5 小结 5

第2章 开始Spring之旅 6

2.1 建立Spring开发环境 6

2.1.1 下载JDK 6

2.1.3 设定Path与CLASSPATH 7

2.1.2 安装JDK 7

2.1.4 下载Eclipse 8

2.1.5 配置Eclipse 8

2.1.6 下载Tomcat 8

2.1.7 设定TOMCAT_HOME 9

2.1.8 下载Eclipse的Tomcat插件 9

2.1.9 为Eclipse配置Tomcat插件 10

2.1.10 下载Spring 12

2.1.11 简单介绍Spring包 12

2.1.12 在Eclipse中配置Spring 13

2.2 第一个使用Spring实现HelloWorld的例子 15

2.2.1 编写存放HelloWorld的Java文件HelloWorld.java 16

2.2.2 配置Spring的config.xml 16

2.2.3 编写测试程序TestHelloWorld.java 17

2.2.4 运行测试程序并查看输出结果 18

2.3 改写第一个Spring例子实现中英文输出 19

2.3.1 编写接口文件Hello.java 19

2.3.2 编写实现接口的两个类(ChHello、EnHello) 19

2.3.3 修改Spring的config.xml 20

2.3.4 修改测试程序TestHelloWorld.java 21

2.3.5 运行测试程序并查看输出结果 21

2.4 小结 22

第2篇 Spring技术详解 24

第3章 Spring基础概念 24

3.1 反向控制/依赖注入 24

3.1.1 反向控制(IoC) 24

3.2.1 接口注入(interface injection) 29

3.1.2 依赖注入(DI) 29

3.2 依赖注入的3种实现方式 29

3.2.2 Set注入(setter iniection) 30

3.2.3 构造注入(constructor iniection) 31

3.3 将HelloWorld实例改为构造注入方式实现 31

3.3.1 修改HelloWorld.java 31

3.3.2 修改config.xml 32

3.3.3 编写测试程序TestHelloWorld.java 32

3.3.4 运行测试程序并查看输出结果 33

3.4 使用哪种注入方式 33

3.5 小结 33

4.2.1 Bean的标识(id和name) 34

4.2 Bean的基础知识 34

4.1 什么是Bean 34

第4章 Spring的核心容器 34

4.2.2 Bean的类(class) 35

4.2.3 Singleton的使用 36

4.2.4 Bean的属性 37

4.2.5 对于null值的处理 40

4.2.6 使用依赖depends-on 41

4.2.7 一个较为完整的Bean配置文档 41

4.3 Bean的生命周期 42

4.3.1 Bean的定义 42

4.3.2 Bean的初始化 43

4.3.3 Bean的使用 46

4.3.4 Bean的销毁 47

4.4 用ref的属性指定依赖的3种模式 50

4.4.1 用local属性指定 50

4.4.2 用Bean属性指定 51

4.4.3 用parent属性指定 51

4.4.4 用local属性与Bean属性指定依赖的比较 52

4.5 Bean自动装配的5种模式 52

4.5.1 使用byName模式 52

4.5.2 使用byType模式 53

4.5.3 使用constructor模式 54

4.5.4 使用autodetect模式 55

4.5.5 使用no模式 56

4.6.2 使用simple模式 57

4.6.1 为什么要使用依赖检查 57

4.6 Bean依赖检查的4种模式 57

4.5.6 对5种模式进行总结 57

4.6.3 使用object模式 58

4.6.4 使用all模式 58

4.6.5 使用none模式 58

4.6.6 对4种模式进行总结 59

4.7 集合的注入方式 59

4.7.1 List 59

4.7.2 Set 60

4.7.3 Map 61

4.7.4 Properties 61

4.7.5 对集合的注入方式进行总结 62

4.8 管理Bean 62

4.8.1 使用BeanWrapper管理Bean 63

4.8.2 使用BeanFactory管理Bean 64

4.8.3 使用ApplicationContext管理Bean 65

4.8.4 3种管理Bean的方式的比较 66

4.9 ApplicationContext更强的功能 66

4.9.1 国际化支持 66

4.9.2 资源访问 69

4.9.3 事件传递 70

4.10 小结 73

第5章 Spring的AOP 74

5.1 AOP基本思想 74

5.1.1 认识AOP 74

5.1.2 AOP与OOP对比分析 74

5.2.1 通用的日志输出方法 75

5.1.3 AOP与Java的代理机制 75

5.2 从一个输出日志的实例分析Java的代理机制 75

5.2.2 通过面向接口编程实现日志输出 77

5.2.3 使用Java的代理机制进行日志输出 78

5.2.4 对这3种实现方式进行总结 80

5.3 AOP的3个关键概念 81

5.3.1 切入点(Pointcut) 81

5.3.2 通知(Advice) 82

5.3.3 Advisor 82

5.4 Spring的3种切入点(Pointcut)实现 82

5.4.1 静态切入点 82

5.5.1 Interception Around通知 83

5.5 Spring的通知(Advice) 83

5.4.3 自定义切入点 83

5.4.2 动态切入点 83

5.5.2 Before通知 84

5.5.3 After Returning通知 84

5.5.4 Throw通知 84

5.5.5 Introduction通知 84

5.6 Spring的Advisor 84

5.7 用ProxyFactoryBean创建AOP代理 85

5.7.1 使用ProxyFactoryBean代理目标类的所有方法 85

5.7.2 使用ProxyFactoryBean代理目标类的指定方法 86

5.7.3 正则表达式简介 87

5.8 把输出日志的实例改成用Spring的AOP来实现 89

5.8.1 采用Interception Around通知的形式实现 89

5.8.2 采用Before通知的形式实现 94

5.8.3 采用After Returning通知的形式实现 97

5.8.4 采用Throw通知的形式实现 101

5.9 Spring中AOP的两种代理方式 105

5.9.1 Java动态代理 105

5.9.2 CGLIB代理 106

5.10 Spring中的自动代理 108

5.11 一个用Spring AOP实现异常处理和记录程序执行时间的实例 114

5.11.1 异常处理和记录程序执行时间的实例简介 114

5.11.2 定义负责异常处理的Advice为ExceptionHandler.java 114

5.11.3 定义记录程序执行时间的Advice为TimeHandler.java 115

5.11.4 定义业务逻辑接口LogicInterface.java 116

5.11.5 编写实现业务逻辑接口的类Logicl.java 116

5.11.6 编写一个不实现业务逻辑接口的类Logic2.java 117

5.11.7 使用自动代理定义配置文件config.xml 118

5.11.8 编写测试类Logicl的程序TestAop.java 119

5.11.9 输出自动代理时类Logicl异常处理和记录程序执行时间的信息 119

5.11.10 编写测试类Logic2的程序TestAop.java 120

5.11.11 输出自动代理时类Logic2异常处理和记录程序执行时间的信息 120

5.11.12 使用ProxyFactoryBean代理定义配置文件config.xml 121

511.13 编写测试类Logicl的程序TestAop.java 122

5.11.14 输出ProxyFactoryBean代理时类Logicl记录程序执行时间的信息 123

5.11.15 编写测试类Logic2的程序TestAop.java 123

5.11.16 输出ProxyFactoryBean代理时类Logic2异常处理的信息 124

5.12 小结 124

6.1.2 事务处理的特性 125

6.1.1 事务处理的基本概念 125

6.1 简述事务处理 125

第6章 Spring的事务处理 125

6.1.3 对事务处理特性的总结 126

6.2 事务处理的3种方式 127

6.2.1 关系型数据库的事务处理 127

6.2.2 传统的JDBC事务处理 128

6.2.3 分布式事务处理 129

6.3 Spring的事务处理 129

6.3.1 Spring事务处理概述 129

6.3.2 编程式事务处理 131

6.3.3 声明式事务处理 136

6.5 小结 140

6.4 使用编程式还是声明式事务处理 140

第7章 Spring的持久层封装 141

7.1 传统的JDBC数据访问技术 141

7.2 通过XML实现DataSource(数据源)注入 142

7.2.1 使用Spring自带的DriverManagerDataSource 142

7.2.2 使用DBCP连接池 144

7.2.3 使用Tomcat提供的JNDI 145

7.3 使用JdbcTemplate访问数据 146

7.3.1 Template模式简介 146

7.3.2 回顾事务处理中TransactionTemplate的实现方式 148

7.3.3 JdbcTemplate的实现方式 150

7.3.4 使用JdbcTemplate查询数据库 158

7.3.5 使用JdbcTemplate更改数据库 158

7.4.1 ORM简述 159

7.4 使用ORM工具访问数据 159

7.4.2 使用Hibernate 160

7.4.3 使用iBatis 164

7.5 小结 167

第8章 Spring的Web框架 168

8.1 Web框架介绍 168

8.1.1 MVC模式简介 168

8.1.2 MVC模式的结构图 169

8.1.3 MVC模式的功能示意图 169

8.1.4 使用MVC模式的好处 169

8.1.5 Model1规范 170

8.1.6 Model2规范 171

8.1.7 Spring MVC的特点 171

8.2 一个在JSP页面输出“HelloWorld”的Spring MVC实例 172

8.2.1 配置web.xml 173

8.2.2 编写实现输出的JSP页面index.jsp 174

8.2.3 编写控制器HelloWorldAction.java 174

8.2.4 配置Spring文档dispatcherServlet-servlet.xml 175

8.2.5 启动Tomcat 176

8.2.6 运行程序 177

8.2.7 把index.jsp改为使用Jstl 177

8.2.8 修改配置文档dispatcherServlet-servlet.xml 178

8.2.9 运行修改后的程序 179

8.2.10 使用Log4j时应该注意的问题 179

8.3 Spring MVC的模型和视图(ModelAndView) 180

8.3.1 模型和视图 180

8.3.2 Jstl简介 182

8.4 Spring MVC的控制器(Controller) 184

8.3.3 视图解析 184

8.4.1 Controller架构 185

8.4.2 表单控制器(SimpleFormController) 185

8.4.3 多动作控制器(MultiActionController) 189

8.5 Spring MVC的分发器(DispatcherServlet) 196

8.5.1 分发器的定义方式 196

8.5.2 分发器的初始化参数 197

8.5.3 分发器的工作流程 198

8.5.4 分发器与视图解析器的结合 199

8.5.5 在一个Web应用中使用不同的视图层技术 200

8.5.6 在DispatcherServlet中指定处理异常的页面 201

8.6.1 映射示例 202

8.6 处理器映射 202

8.6.2 映射原理 204

8.6.3 添加拦截器 205

8.7 数据绑定 209

8.7.1 绑定原理 209

8.7.2 使用自定义标签 210

8.7.3 Validator应用 214

8.8 本地化支持 218

8.8.1 在头信息中包含客户端的本地化信息 219

8.8.2 根据cookie获取本地化信息 219

8.8.3 从会话中获取本地化信息 221

8.8.4 根据参数修改本地化信息 222

8.9 一个用Spring MVC实现用户登录的完整示例 224

8.9.1 在Eclipse中建立Tomcat工程项目myMVC 224

8.9.2 编写日志文件放在myMVC/WEB-INF/src下 225

8.9.3 配置web.xml 226

8.9.4 编写登录页面login.jsp 227

8.9.5 编写显示成功登录的页面success.jsp 227

8.9.6 编写存放用户登录信息的Bean 228

8.9.7 编写用户输入信息验证UserValidator.java 228

8.9.8 编写用户登录逻辑Login.java 229

8.9.9 编写配置文件dispatcherServlet-servlet.xml 230

8.9.10 运行程序 231

8.9.11 国际化支持 231

8.9.12 运行国际化后的程序 236

8.10 小结 237

9.1 定时器简述 238

9.2 定时器的两种实现方式 238

第9章 Spring的定时器 238

9.2.1 Timer 239

9.2.2 Quartz 240

9.2.3 两种方式的比较 243

9.3 利用Spring简化定时任务的开发 243

9.3.1 在Spring中使用Timer实现定时器 243

9.3.2 在Spring中使用Quartz实现定时器 245

9.4 小结 246

第3篇 Spring与其他工具整合应用 248

第10章 Spring与Struts的整合 248

10.1 Struts介绍 248

10.1.1 Struts的历史 248

10.1.2 Struts的体系结构 248

10.2.2 配置Struts 249

10.2 Struts的下载和配置 249

10.2.1 下载Struts 249

10.3 一个在JSP页面输出“HelloWorld”的Struts实例 252

10.3.1 配置web.xml 252

10.3.2 编写实现输出的JSP页面index.jsp 253

10.3.3 编写控制器HelloWorldAction.java 254

10.3.4 配置Struts文档struts-config.xml 255

10.3.5 启动Tomcat 255

10.3.6 运行程序 256

10.4 Struts的几个主要类简介 256

10.4.1 ActionServlet(控制器) 256

10.4.2 Action(适配器) 259

10.4.3 ActionMapping(映射) 260

10.4.4 ActionForm(数据存储) 263

10.4.5 DispatchAction(多动作控制器) 266

10.5 国际化支持 269

10.6 Struts的自定义标签 273

10.6.1 Bean标签 274

10.6.2 Logic标签 275

10.6.3 Html标签 277

10.7 Spring与Struts整合的3种方式 278

10.7.1 通过Spring的ActionSupport类 279

10.7.2 通过Spring的DelegatingRequestProcessor类 282

10.7.3 通过Spring的DelegatingActionProxy类 286

10.7.4 比较3种整合方式 289

10.8.1 Spring与Struts整合环境的配置 290

10.8 采用第3种整合方式编写一个用户注册的例子 290

10.8.2 编写web.xml 293

10.8.3 编写用户注册页面regedit.jsp 293

10.8.4 编写用户注册成功页面success.jsp 294

10.8.5 编写用户类User.java 294

10.8.6 编写Struts的配置文件struts-config.xml 295

10.8.7 编写Spring的配置文件config.xml 296

10.8.8 编写控制器RegeditAction.java 296

10.8.9 编写业务逻辑接口Regedit.java 297

10.8.10 编写具体的业务逻辑类RegeditImpl.java 297

10.8.11 运行用户注册的例子 298

10.9 小结 299

11.2 Hibernate的下载和配置 300

11.2.1 下载Hibernate 300

11.1 Hibernate介绍 300

第11章 Spring与Hibernate的整合 300

11.2.2 配置Hibernate 301

11.3 一个实现数据新增的Hibernate示例 302

11.3.1 建立数据库表 303

11.3.2 编写表对应的POJO 304

11.3.3 编写POJO对应的XML 305

11.3.4 编写Hibernate的配置文件 306

11.3.5 编写测试案例 306

11.3.6 运行测试程序 307

11.4 Hibernate的配置 308

11.5 Hibernate的映射 310

11.5.1 集合映射 311

11.5.2 组件映射 321

11.5.3 关联映射 323

11.5.4 继承映射 346

11.6 Hibernate的工具 350

11.6.1 从数据库到映射 350

11.6.2 从映射到POJO 358

11.7 Hibernate的几个主要类简介 360

11.7.1 Configuration(管理Hibernate) 360

11.7.2 SessionFactory(创建Session) 361

11.7.3 Session(提供Connection) 361

11.8 通过XML来整合Spring和Hibernate 363

11.9 整合Struts、Spring和Hibernate实现用户注册的示例 364

11.9.1 Spring、Struts和Hibernate整合环境的配置 365

11.9.2 编写webxml 368

11.9.3 编写用户注册页面regedit.jsp 369

11.9.4 编写用户注册成功页面success.jsp 369

11.9.5 建立数据库表结构 369

11.9.6 生成映射文件User.hbm.xml和POJO 370

11.9.7 编写接口UserDAO.java和实现类UserDAOImpl.java 372

11.9.8 编写Struts的配置文件struts-config.xml 373

11.9.9 编写Spring的配置文件config.xml 374

11.9.10 编写控制器RegeditAction.java 376

11.9.11 编写业务逻辑接口Regedit.java 376

11.9.12 编写具体的业务逻辑类RegeditImpl.java 377

11.9.13 运行用户注册的例子 377

11.10 小结 379

12.2.1 下载Ant 380

12.2 Ant的下载和安装 380

第12章 在Spring中使用Ant 380

12.1 Ant介绍 380

12.2.2 安装Ant 381

12.3 在Spring中使用Ant 382

12.3.1 在Eclipse中配置Ant 382

12.3.2 建立build.xml 382

12.3.3 运行Ant 384

12.4 小结 384

第13章 在Spring中使用Junit 385

13.1 Junit介绍 385

13.3 在Spring中使用Junit 386

13.2.2 安装Junit 386

13.2.1 下载Junit 386

13.2 Junit的下载和安装 386

13.3.1 在Eclipse中配置Junit 387

13.3.2 扩展TestCase类 387

13.3.3 运行Junit 388

13.4 使用Junit时常用的一些判定方法 389

13.5 利用Ant和Junit进行自动化测试 389

13.5.1 修改build.xml 389

13.5.2 运行Ant 391

13.5.3 自动生成测试报告 392

13.6 小结 393

14.2.2 检查Tomcat配置 396

14.2.1 检查JDK配置 396

14.2 检查环境配置 396

第14章 用Spring实现新闻发布系统实例 396

第4篇 Spring实例 396

14.1 新闻发布系统的介绍 396

14.2.3 检查Ant配置 397

14.3 在Eclipse下建立项目myNews 398

14.3.1 在Eclipse下建立项目 398

14.3.2 编写Ant build文件 401

14.3.3 配置web.xml文件 402

14.4 设计新闻发布系统 403

14.4.1 设计页面 403

14.4.2 设计持久化类 410

14.4.3 设计数据库 415

14.5.1 新闻发布的展示页面show.jsp 416

14.4.4 新闻发布系统在持久层的整体UML图 416

14.5 编写新闻发布系统的JSP页面 416

14.5.2 发布新闻页面release.jsp 418

14.5.3 用户注册页面regedit.jsp 419

14.5.4 管理员登录页面login.jsp 420

14.5.5 错误处理页面error.jsp 421

14.6 建立数据库表并生成XML和POJO 422

14.6.1 存放用户信息的数据库表 423

14.6.2 存放新闻的数据库表 424

14.6.3 存放新闻类别的数据库表 426

14.6.4 存放用户权限的数据库表 427

14.6.5 建立表之间的关系 429

14.6.6 生成对应的XML 432

14.6.7 生成POJO 443

14.7.1 用户类User.java 450

14.7 编写新闻发布系统的VO和DAO 450

14.7.2 用户权限类UsersAuthor.java 452

14.7.3 新闻类News.java 452

14.7.4 新闻类别类NewsType.java 454

14.7.5 用户DAO接口UserDAO.java 454

14.7.6 新闻DAO接口NewsDAO.java 455

14.7.7 新闻类别DAO接口NewsTypeDAO.java 455

14.7.8 用户DAO实现类UserDAOImpl.java 456

14.7.9 新闻DAO实现类NewsDAOImpl.java 457

14.7.10 新闻类别DAO实现类NewsTypeDAOImpl.java 458

14.8 编写新闻发布系统的业务逻辑类 459

14.8.1 登录接口Login.java 459

14.8.4 登录实现类LoginImpl.java 460

14.8.2 注册接口Regedit.java 460

14.8.3 发布接口Release.java 460

14.8.5 注册实现类RegeditImpl.java 461

14.8.6 发布实现类ReleaseImpl.java 462

14.9 编写新闻发布系统的控制器类 464

14.9.1 登录控制器类LoginController.java 464

14.9.2 注册控制器类RegeditController.java 466

14.9.3 发布控制器类ReleaseController.java 467

14.9.4 显示控制器类ShowController.java 469

14.10 编写辅助类NewsUtil.java 471

14.11 编写配置文件dispatcherServlet-servlet.xml 475

14.12 运行验证程序 480

14.13 小结 484