第1篇Spring Web编程基础篇 3
第1章 Spring环境的安装与使用 3
1.1 Spring应用环境的安装配置 3
1.1.1 安装JDK 3
1.1.2 Tomcat服务器的安装 3
1.1.3 测试简单的Web应用 5
1.1.4 下载Spring 6
1.1.5 安装STS 6
1.2 Spring简单样例调试 7
1.2.1 简单Spring应用程序调试步骤 7
1.2.2 使用单元测试 13
1.3 STS的动态Web工程模板的目录结构 13
1.3.1 动态Web工程模板的目录结构 13
1.3.2 应用的运行与部署 14
1.4 Spring框架基本组成 14
1.4.1 核心容器 16
1.4.2 数据访问与整合 16
1.4.3 Web层 16
1.4.4 其他模块 16
本章小结 17
第2章 JSP与JSTL简介 18
2.1 JSP简单示例 18
2.2 JSP编译指令 19
2.2.1 page指令 19
2.2.2 include指令 19
2.3 JSP动作标签 20
2.3.1 〈jsp:include〉动作标签 20
2.3.2 〈jsp:forword〉动作标签 20
2.3.3 useBean、setProperty、getProperty动作标签 20
2.4 JSP内置对象 21
2.4.1 内置对象的作用范围 22
2.4.2 out对象 22
2.4.3 application对象 22
2.4.4 request对象 23
2.4.5 response对象 24
2.4.6 session对象 25
2.4.7 pageContext对象 25
2.4.8 config、page、exception对象 26
2.5 使用EL表达式 26
2.6 JSTL的标签库 28
本章小结 31
第3章 Spring基础概念与工具 32
3.1 Bean的依赖注入 32
3.1.1 设值注入方式 32
3.1.2 构造注入方式 36
3.1.3 集合对象注入 37
3.2 用自动扫描注解方式定义Bean 39
3.3 Spring Bean的生命周期 39
3.3.1 Bean的范围 40
3.3.2 Bean自动装配(autowire)的5种模式 41
3.3.3 Bean的依赖检查 41
3.4 使用基于注解的配置 42
3.4.1 使用@Configuration和@Bean进行Bean的声明 42
3.4.2 混合使用XML与注解进行Bean的配置 44
3.5 Spring的过滤器和监听器 45
3.5.1 Spring过滤器 45
3.5.2 Spring监听器 46
3.6 Spring的文件资源访问 47
3.6.1 用Resource接口访问文件资源 47
3.6.2 用ApplicationContext接口访问文件资源 48
3.6.3 用ResourceUtils类访问文件资源 49
3.6.4 FileCopyUtils类的使用 49
3.6.5 属性文件操作 50
3.7 Web Utils工具类 50
3.8 Spring的SpEL语言 51
3.8.1 使用Expression接口进行表达式求值 51
3.8.2 SpEL支持的表达式类型 52
3.8.3 在Bean配置中使用SpEL 54
本章小结 55
第4章 用Spring JdbcTemplate访问数据库 56
4.1 用JdbcTemplate访问数据库 56
4.1.1 连接数据库 57
4.1.2 数据源的注入 58
4.1.3 使用JdbcTemplate查询数据库 60
4.1.4 使用JdbcTemplate更新数据库 62
4.1.5 对业务逻辑的应用测试 63
4.2 数据库中大容量字节数据的读写访问 65
4.2.1 将大容量数据写入数据库 65
4.2.2 从数据库读取大容量数据 66
本章小结 67
第5章 使用Maven工程 68
5.1 Maven概览 68
5.2 理解Maven依赖项管理模型 69
5.2.1 关于依赖范围与classpath的关系 69
5.2.2 Maven仓库 70
5.2.3 工件和坐标 71
5.3 在STS中创建Maven Web工程 71
5.4 在STS中运行MVN命令 74
5.5 Maven的多模块管理 75
本章小结 76
第6章 Spring MVC编程 77
6.1 关于Spring MVC配置文件 77
6.2 Spring MVC控制器 81
6.2.1 Spring MVC 3.0的RESTful特性 82
6.2.2 与控制器相关的注解符 82
6.2.3 REST其他类型的请求方法的实现 84
6.3 关于MVC显示视图 85
6.3.1 ViewResolver视图解析器 85
6.3.2 栏目显示的MVC实现方案 87
6.4 用Spring MVC实现文件上传应用 89
6.4.1 文件上传表单 89
6.4.2 文件上传处理控制器 90
6.5 用Spring的RestTemplate访问REST服务 90
6.5.1 RestTemplate方法介绍 90
6.5.2 使用H ttpMessageConverters 91
6.5.3 用RestTemplate实现服务调用的应用举例 92
本章小结 95
第7章 基于MVC的资源共享网站设计 96
7.1 文档资源对象和资源访问服务设计 96
7.1.1 数据信息实体——资源对象的类设计 96
7.1.2 资源访问的业务逻辑设计 97
7.2 配置文件 101
7.2.1 web.xml配置 101
7.2.2 Servlet环境配置 102
7.2.3 应用程序Java Bean的注入配置 103
7.3 MVC控制器设计 103
7.3.1 控制器URI的Mapping设计 104
7.3.2 控制器实现 104
7.4 应用界面及表示层设计 107
7.4.1 提供资源上传表单的JSP页面 107
7.4.2 显示某类别资源的列表目录的JSP视图 108
7.4.3 显示要下载资源详细信息的JSP视图 109
7.5 数据的分页显示处理 110
7.5.1 业务逻辑方法的改写 111
7.5.2 控制器的改写 112
7.5.3 分页显示视图设计 112
本章小结 113
第2篇Spring高级编程概念讨论篇 117
第8章 Spring的AOP编程 117
8.1 AOP概述 117
8.1.1 AOP的术语 117
8.1.2 AOP的优点 118
8.1.3 AspectJ的切点表达式函数 119
8.1.4 Spring中用注解方式建立AOP应用的基本步骤 120
8.2 简单AOP应用示例 120
8.3 Spring切面定义说明 124
8.3.1 Spring的通知类型 124
8.3.2 访问目标方法的参数 125
8.4 利用AOP获取用户兴趣 126
本章小结 127
第9章 Spring的安全访问控制 128
9.1 Spring Security简介 128
9.1.1 Spring Security整体控制框架 128
9.1.2 Spring Security的过滤器 129
9.2 最简单的HTTP安全认证 129
9.2.1 利用Spring Security提供的登录页面 130
9.2.2 使用自制的登录页面 134
9.3 使用数据库用户进行认证 136
9.4 对用户密码进行加密处理 136
9.4.1 Spring Security早期版本的PasswordEncoder 137
9.4.2 Spring Security 3.1.0后新增的PasswordEncoder 138
9.5 关于访问授权表达式 139
9.6 基于注解的方法访问的保护 140
9.7 Spring提供的JSP安全标签库 140
9.7.1 JSP安全标签简介 141
9.7.2 JSP安全标签的应用举例 142
本章小结 143
第10章 Spring的事务管理 144
10.1 传统使用JDBC的事务管理 144
10.2 Spring提供的编程式事务处理 145
10.2.1 使用Transact ionTemplate进行事务处理 145
10.2.2 程序根据JdbcTemplate处理结果进行提交和回滚 147
10.3 Spring声明式事务处理 148
10.3.1 用TransactionInterceptor拦截器进行事务管理 149
10.3.2 用Transact ionProxyFactoryBean进行事务管理 150
10.4 使用@Transactional注解 151
10.4.1 相关的XML配置 151
10.4.2 使用@Transactional注解几点注意 152
本章小结 153
第11章 Spring的任务执行与调度 154
11.1 基于JDK Timer的Spring任务调度 154
11.1.1 制作一个定时器任务类 154
11.1.2 通过Bean的注入配置实现任务调度 155
11.1.3 测试主程序 155
11.2 使用Spring的SchedulingTaskExecutor 156
11.2.1 任务程序 156
11.2.2 Bean的注入配置 157
11.2.3 测试程序 158
11.3 在Spring中使用Quartz 158
11.3.1 首先编写一个被调度的类 158
11.3.2 Spring的配置文件 159
11.3.3 测试程序 160
11.4 使用Spring的TaskScheduler 160
11.4.1 使用XM L进行配置 160
11.4.2 通过@ Scheduled注解方式进行配置 161
11.5 关于Cron表达式 162
11.6 文件安全检测应用案例 163
11.6.1 安全检测程序 163
11.6.2 任务调度配置 166
本章小结 166
第12章 Spring Web应用的国际化支持 167
12.1 JDK核心包中对国际化的支持 167
12.2 服务端对Locale的解析配置 168
12.2.1 使用Accept HeaderLocaleResolver的配置 168
12.2.2 使用SessionLocaleResolver的配置 168
12.2.3 使用Cookie Local eResolver配置 169
12.3 Web页静态显示的国际化处理 169
12.3.1 在应用的配置文件中定义消息源 169
12.3.2 建立针对语种的properties文件 170
12.3.3 使用国际化数据 170
12.4 数据库动态访问的国际化 172
12.4.1 不同国家的数据采用同一库存储 172
12.4.2 不同国家的数据分库存储 173
12.5 Spring表单数据校验处理国际化 173
12.5.1 Spring的数据校验接口逻辑 173
12.5.2 Spring的表单标签与模型的结合 175
本章小结 177
第3篇Spring应用整合处理研究篇 181
第13章 AJAX与Spring结合的访问模式 181
13.1 基于XML的消息传送方案 182
13.1.1 客户端代码设计 182
13.1.2 服务端代码设计 185
13.2 基于JSON的消息传送方案 188
13.2.1 服务器方消息响应处理 188
13.2.2 客户方解析消息处理 189
本章小结 190
第14章 利用Spring发送电子邮件 191
14.1 关于JavaMail 191
14.2 Spring对发送邮件的支持 191
14.2.1 MailMessage接口 191
14.2.2 JavaMailSender及其实现类 192
14.2.3 使用MimeMessageHelper类设置邮件消息 192
14.3 利用Spring发送各类邮件 193
14.3.1 发送纯文本邮件 193
14.3.2 发送HTML邮件 194
14.3.3 发送带内嵌(inline)资源的邮件 194
14.3.4 发送带附件(Attachments)的邮件 195
本章小结 195
第15章 Spring JMS消息应用编程 197
15.1 异步通信方式与JMS 197
15.1.1 异步通信方式 197
15.1.2 JMS(Java消息服务) 197
15.2 ActiveMQ消息队列服务器的配置 198
15.3 Spring JMS简介 199
15.3.1 用JmsTemplate进行消息发送和接收 200
15.3.2 Java对象到消息转换接口 200
15.4 消息发送/接收样例 201
15.4.1 发送消息Bean的设计 201
15.4.2 应用配置 201
15.4.3 接收消息Bean的设计 202
15.4.4 应用环境的装载与消息发送测试 203
本章小结 204
第16章 教学资源全文检索应用设计 205
16.1 Tika和Lucene概述 205
16.1.1 Tika概述 205
16.1.2 Lucene索引和搜索概述 206
16.1.3 Lucene软件包分析 206
16.1.4 与索引创建相关的API 207
16.1.5 与内容搜索相关的API 207
16.2 创建索引 207
16.3 建立基于Web的搜索服务 210
本章小结 215
第17章 Java应用的报表打印 216
17.1 完全用iText编程生成含报表的PDF文档 216
17.1.1 用iText通过直接编程生成PDF文档步骤 216
17.1.2 Document对象简介 216
17.1.3 书写器(Writer)对象 217
17.1.4 文本处理 217
17.1.5 表格处理 219
17.1.6 图像处理 223
17.2 基于PDF报表模板的报表填写处理 223
17.3 在Spring 3.1 中使用PDF视图 224
本章小结 226
第18章 网络考试系统设计 227
18.1 组卷处理及试卷显示 228
18.1.1 组卷相关数据对象的封装设计 228
18.1.2 组卷业务逻辑程序 228
18.1.3 组卷MVC控制器 230
18.1.4 试卷显示视图 231
18.2 阅卷处理 233
18.2.1 阅卷逻辑的方法设计 233
18.2.2 阅卷控制器 234
18.2.3 学生得分显示视图 235
18.3 查阅试卷 235
18.3.1 显示内容的封装设计 235
18.3.2 查卷访问控制器设计 236
18.3.3 查卷显示视图 237
本章小结 238
第19章 Spring应用的云部署与编程 239
19.1 CIoudFoundry云平台简介 239
19.2 在STS环境下部署Web应用到云平台 240
19.2.1 在STS环境中实现云虚拟机管理 240
19.2.2 使用云平台的MySQL数据库 241
19.2.3 CloudFoundry应用设计部署要注意的问题 243
19.3 云上RabbitMQ消息通信编程 244
19.3.1 RabbitMQ简介 244
19.3.2 云上RabbitMQ配置及RabbitTemplate的使用 245
19.3.3 基于MVC的发布订阅通信演示 247
本章小结 250
第20章 Spring Integration应用简介 251
20.1 Spring Integration主要概念介绍 251
20.1.1 消息的构建 251
20.1.2 消息通道 252
20.1.3 消息端点 253
20.2 应用消息处理流程配置 254
20.3 使用注解定义消息端点 256
20.4 网络教学中用户星级计算处理样例 257
本章小结 258
第21章 基于MVC的文档网络存储服务设计 260
21.1 控制器的设计 261
21.2 显示视图设计 265
21.3 文件下载处理更好方法 268
本章小结 269
参考文献 270