
| ·结合示例程序进行讲解,覆盖Spring 绝大多数API ·全面诠释Spring的AOP框架,演示基于AOP框架的权限检查 ·结合实例讲解DAO等J2EE设计模式,直接提升读者对架构设计的把握 ·代码注释极为详尽,帮助读者快速掌握要领 ·最后配备了三个完整案例,让读者从项目中体会Spring的奥妙 |
| 李刚: 从事过6年的J2EE应用开发,担任过LITEON公司的J2EE技术管理,负责该公司的企业信息平台的架构设计。担任过广东龙泉科技有限公司的J2EE技术培训导师。目前在新东方IT培训中心担任J2EE培训讲师,培训的学生已经在广州、深圳等软件公司就业,在珠三角的J2EE行业极具号召力。 .. << 查看详细 |
| 第1部分 spring核心技术 1 第1章 spring概述 2 1.1 spring的起源和背景 2 1.2 spring初探 3 1.2.1 运行spring所需的环境 3 1.2.2 spring的下载和安装 4 1.3 spring体系介绍 9 1.3.1 spring的核心和context 9 1.3.2 spring的web和mvc 9 1.3.3 spring的面向切面编程 10 1.3.4 spring的持久化支持 10 1.4 spring的基本设计思想 10 1.4.1 单态模式的回顾 10 1.4.2 工厂模式的回顾 11 1.4.3 spring对单态与工厂模式的实现 14 1.5 spring的核心机制 15 1.5.1 理解依赖注入 15 1.5.2 设值注入 16 1.5.3 构造注入 20 1.5.4 两种注入方式的对比 21 .1.6 小结 21 第2章 spring中的bean和beanfactory 22 2.1 bean简介 22 2.2 bean定义和bean实例化 22 2.2.1 beanfactory接口介绍 22 2.2.2 在context定义bean 24 2.2.3 bean的基本行为 25 2.2.4 bean与javabean的关系 26 2.2.5 实例化bean 28 2.3 bean特性的深入 35 2.3.1 bean的高级属性、合作者 36 2.3.2 使用depends-on强制初始化bean 41 2.3.3 自动装配 41 2.3.4 依赖检查 44 2.4 bean的生命周期 46 2.4.1 了解bean的生命周期 46 2.4.2 协调不同步的bean 46 2.4.3 定制bean的生命周期行为 49 2.5 小结 52 第3章 bean的高级功能 53 3.1 bean的继承 53 3.1.1 抽象bean 53 3.1.2 定义子bean 54 3.1.3 spring中bean的继承与java中继承的区别 56 3.2 高级依赖注入 56 3.2.1 属性值的依赖注入 56 3.2.2 field值的依赖注入 59 3.2.3 方法返回值的依赖注入 60 3.3 使用beanpostprocessor 63 3.4 使用beanfactorypostprocessor 65 3.4.1 使用属性占位符配置器 66 3.4.2 另一种属性占位符配置器propertyoverrideconfigurer 67 3.5 与容器交互 68 3.5.1 工厂bean简介与配置 68 3.5.2 使用factorybean接口 70 3.5.3 使用beanfactoryaware获取beanfactory 72 3.5.4 使用beannameaware回调本身 74 3.6 applicationcontext介绍 75 3.6.1 国际化支持 75 3.6.2 事件处理 77 3.6.3 web应用中自动加载applicationcontext 79 3.7 汇总多个xml配置文件 80 3.7.1 applicationcontext加载多个配置文件 80 3.7.2 web应用启动时加载多个配置文件 81 3.7.3 xml配置文件中导入其他配置文件 81 3.8 小结 81 第4章 spring中的资源访问 82 4.1 传统资源访问与spring的资源访问 82 4.1.1 传统资源访问 82 4.1.2 spring的资源访问 83 4.2 resource实现类 85 4.2.1 访问网络资源 85 4.2.2 使用classpathresource 86 4.2.3 访问文件系统资源 87 4.2.4 访问应用相关资源 88 4.2.5 访问输入流资源 90 4.2.6 访问字节数组资源 92 4.3 resourceloader接口和resourceloaderaware接口 93 4.3.1 使用resourceloader 93 4.3.2 使用resourceloaderaware 95 4.4 使用resource作为属性 96 4.5 applicationcontext中使用资源 99 4.5.1 实例化applicationcontext 99 4.5.2 classpath*前缀的用法 101 4.5.3 访问文件系统 103 4.6 小结 104 第5章 表现层数据的处理 105 5.1 表现层数据涉及的处理 105 5.1.1 类型转换 105 5.1.2 数据校验 108 5.2 spring支持的表现层数据处理 112 5.2.1 数据绑定 112 5.2.2 bean包装 113 5.2.3 数据校验 113 5.3 bean包装详解 113 5.3.1 修改、获取bean属性 113 5.3.2 类型转换 116 5.3.3 内建的propertyeditor 118 5.3.4 自定义propertyeditor 119 5.4 数据校验详解 121 5.4.1 实现校验器 122 5.4.2 显示出错提示 123 5.5 小结 125 第6章 spring对aop的支持 126 6.1 aop入门 126 6.1.1 aop中的概念 126 6.1.2 aop代理 127 6.2 spring对aop的支持 130 6.2.1 简介 130 6.2.2 spring的切入点 131 6.2.3 spring的处理 134 6.3 创建aop代理 150 6.3.1 基本概念 150 6.3.2 代理接口 151 6.3.3 代理类 155 6.4 实用的代理工厂类 155 6.4.1 使用transactionproxyfactorybean 156 6.4.2 使用localstatelesssessionproxyfactorybean 158 6.5 简洁的代理定义方式 160 6.6 自动代理 161 6.6.1 定义自动代理bean 161 6.6.2 自动代理的实现 161 6.7 编程式创建aop代理 164 6.8 操作代理 166 6.9 小结 167 第7章 spring的事务管理 168 7.1 事务介绍 168 7.1.1 事务的基本概念 168 7.1.2 事务的特性 168 7.2 spring中的事务 169 7.2.1 传统事务的特征和弱点 169 7.2.2 spring事务的优势 169 7.3 使用事务管理器接口platformtransactionmanager 170 7.4 编程式事务 174 7.4.1 使用transactiontemplate 174 7.4.2 使用platformtransactionmanager 176 7.5 声明式事务 177 7.5.1 使用声明式事务管理 177 7.5.2 根据beanname自动创建事务代理 180 7.5.3 基于jdk1.5+的注释式事务代理配置 182 7.5.4 使用bean继承简化事务代理配置 185 7.6 关于事务管理的思考 186 7.6.1 编程式事务vs声明式事务 186 7.6.2 应用服务器管理事务 187 7.7 小结 187 第2部分 spring与其他工具、框架整合应用 199 第8章 dao支持 190 8.1 dao模式介绍 190 8.1.1 j2ee应用的通用分层 190 8.1.2 编写dao 192 8.1.3 如何使用dao 196 8.2 spring中dao的体系 197 8.2.1 统一的异常继承体系 197 8.2.2 统一的dao抽象 198 8.3 常见的dao支持类 198 8.3.1 spring对jdbc的dao支持 199 8.3.2 spring对hibernate的dao支持 202 8.4 dao模式的异常处理 206 8.4.1 编写dao异常类 206 8.4.2 改写dao实现类 207 8.5 小结 209 第9章 使用jdbc操作数据库 210 9.1 jdbc基础 210 9.1.1 jdbc简介 210 9.1.2 jdbc驱动 210 9.1.3 jdbc常用接口和类简介 211 9.1.4 传统的jdbc访问数据库 213 9.2 数据库连接池 213 9.2.1 数据库连接池介绍 213 9.2.2 常见的数据库连接池 217 9.3 spring的jdbc体系 221 9.3.1 spring的jdbc封装 221 9.3.2 spring的jdbc与传统jdbc的对比 222 9.4 使用jdbctemplate访问数据库 223 9.4.1 执行简单查询 223 9.4.2 执行简单更新 224 9.4.3 执行简单ddl 225 9.4.4 使用statementcallback访问数据库 226 9.4.5 使用preparedstatementcallback访问数据库 227 9.5 连接数据库的辅助类 228 9.5.1 使用数据源工具类(datasourceutils) 228 9.5.2 智能数据源(smartdatasource)接口介绍 229 9.5.3 单连接数据源singleconnectiondatasource的使用 229 9.5.4 另一个数据源实现:drivermanagerdatasource 230 9.5.5 数据源的事务管理器datasourcetransactionmanager 231 9.6 数据库操作的对象化 233 9.6.1 查询结果对象化 233 9.6.2 查询对象 235 9.6.3 更新对象 237 9.6.4 使用storedprocedure调用存储过程或函数 238 9.6.5 使用storedprocedure调用函数 240 9.6.6 使用sqlfunction执行查询或调用函数 241 9.7 小结 243 第10章 整合hibernate执行持久化操作 244 10.1 orm介绍 244 10.1.1 什么是orm 244 10.1.2 为什么需要orm 244 10.1.3 流行的orm框架简介 245 10.2 hibernate介绍 245 10.2.1 采用传统jdbc操作数据库 245 10.2.2 hibernate下载和安装 247 10.2.3 hibernate初探 247 10.2.4 hibernate的基本映射 250 10.2.5 hibernate的关系映射 251 10.2.6 hibernate的hql查询 257 10.2.7 hibernate的criteria查询 261 10.3 整合hibernate 261 10.4 管理sessionfactory 262 10.5 spring对hibernate的简化 263 10.6 使用hibernatetemplate 264 10.6.1 hibernatetemplate的常规用法 266 10.6.2 hibernate的复杂用法hibernatecallback 267 10.7 hibernate的dao实现 268 10.7.1 继承hibernatedaosupport实现dao 268 10.7.2 基于hibernate 3.0实现dao 271 10.8 事务管理 272 10.8.1 编程式的事务管理 272 10.8.2 声明式的事务管理 274 10.8.3 事务策略的思考 276 10.9 小结 276 第11章 spring的mvc框架 277 11.1 mvc入门 277 11.1.1 传统的model 1和model 2 277 11.1.2 mvc及其优势 278 11.2 web mvc框架简介 279 11.2.1 目前流行的mvc框架 279 11.2.2 mvc框架的基本特征 280 11.3 spring mvc的特点和优、劣势 280 11.4 spring mvc框架中的角色 281 11.4.1 核心控制器dispatcherservlet 281 11.4.2 业务控制器 282 11.4.3 处理器映射 282 11.4.4 视图和视图解析器 282 11.4.5 模型 282 11.4.6 command对象 282 11.5 核心控制器 282 11.6 控制器映射 283 11.6.1 使用beannameurlhandlermapping 283 11.6.2 simpleurlhandlermapping 286 11.7 业务控制器 287 11.7.1 abstractcontroller和webcontentgenerator 287 11.7.2 简单控制器 288 11.7.3 使用parameterizableviewcontroller 288 11.7.4 使用urlfilenameviewcontroller 289 11.7.5 commandcontroller类介绍 290 11.7.6 使用simpleformcontroller 291 11.7.7 使用multiactioncontroller 293 11.8 模型 296 11.9 视图和视图解析器 296 11.9.1 internalresourceviewresolver示例 297 11.9.2 视图解析器的链式处理 298 11.9.3 重定向视图 298 11.10 spring mvc中的程序国际化 300 11.10.1 自动化的国际化信息解析 300 11.10.2 自定义的国际化信息解析 301 11.11 数据校验 302 11.12 文件上传 304 11.12.1 使用multipartresolver 304 11.12.2 定义command对象和控制器 305 11.13 小结 307 第12章 整合第三方mvc框架 308 12.1 目前流行的mvc框架分析 308 12.1.1 struts 308 12.1.2 webwork2 309 12.1.3 jsf 309 12.1.4 tapestry 309 12.2 spring整合第三方mvc框架的通用配置 310 12.2.1 采用servletcontextlistener创建applicationcontext 310 12.2.2 采用load-on-startup servlet创建applicationcontext 312 12.3 整合struts 313 12.3.1 struts的使用 313 12.3.2 spring管理struts的action 318 12.3.3 使用actionsupport代替action 325 12.4 整合webwork2 326 12.4.1 使用webwork2 327 12.4.2 webwork2与spring的整合 334 12.5 整合jsf 335 12.5.1 使用jsf 336 12.5.2 jsf的依赖注入 341 12.5.3 利用jsf的依赖注入整合spring 342 12.5.4 利用facescontextutils 345 12.6 小结 345 第13章 整合第三方表现层技术 346 13.1 表现层介绍 346 13.1.1 表现层的概念 346 13.1.2 表现层的功能 346 13.1.3 常见的表现层技术 346 13.2 整合jstl 347 13.2.1 jstl介绍 347 13.2.2 使用jstlview视图解析器 348 13.3 整合velocity 350 13.3.1 velocity介绍 351 13.3.2 spring对velocity的支持 353 13.3.3 管理velocity的模板 355 13.3.4 处理表单 357 13.4 整合xstl视图 358 13.4.1 xml知识简介 358 13.4.2 xstl介绍 360 13.4.3 spring对xslt视图的支持 361 13.4.4 转换模型的数据 362 13.5 生成excel表格或pdf文档 364 13.5.1 poi介绍 364 13.5.2 itext简介 367 13.5.3 生成excel表格 369 13.5.4 创建pdf文档 371 13.6 小结 374 第14章 通过spring进行远程访问和webservice 375 14.1 远程访问简介 375 14.1.1 远程访问的意义 375 14.1.2 常用的远程访问技术 376 14.2 webservice简介 376 14.2.1 webservice的特点 376 14.2.2 webservice的主要技术 378 14.3 spring对远程访问的支持 379 14.4 通过rmi提供服务 379 14.4.1 rmi介绍 379 14.4.2 使用rmiserviceexporter提供服务 382 14.4.3 在客户端连接服务 384 14.5 使用hessian通过http提供服务 385 14.5.1 hessian介绍 386 14.5.2 为hessian装配dispatcherservlet 388 14.5.3 使用hessianserviceexporter提供bean服务 389 14.5.4 在客户端连接服务 390 14.6 通过web service提供服务 391 14.6.1 webservice的开源实现 391 14.6.2 spring对webservice的支持 394 14.6.3 从客户端访问spring发布的webservice 397 14.7 使用httpinvoker提供远程服务 398 14.7.1 输出业务对象 398 14.7.2 客户端连接服务 400 14.8 小结 401 第15章 ejb的访问和实现 402 15.1 ejb简介 402 15.1.1 ejb的概念和分类 402 15.1.2 如何编写ejb 403 15.1.3 ejb的部署与运行 406 15.1.4 程序中调用ejb 406 15.2 传统ejb访问的讨论 408 15.2.1 常规的ejb访问策略 408 15.2.2 传统ejb访问的不足 410 15.2.3 spring的ejb访问策略 411 15.3 利用spring简化ejb的访问 411 15.3.1 访问local无状态会话bean 411 15.3.2 访问remote无状态会话bean 415 15.4 spring提倡的ejb架构 420 15.4.1 使用di将ejb的业务逻辑委托给pojo 420 15.4.2 管理ejb中的spring容器 422 15.5 小结 423 第16章 spring中使用jms 424 16.1 jms介绍 424 16.1.1 jms简介 424 16.1.2 jms开发 425 16.2 消息驱动ejb介绍 435 16.2.1 消息驱动ejb的bean类 435 16.2.2 消息驱动ejb的配置文件 437 16.3 spring对jms的支持 438 16.3.1 spring的jmstemplate 439 16.3.2 管理连接工厂 439 16.3.3 管理消息目的 440 16.3.4 jms与事务 440 16.4 通过spring发送消息 440 16.4.1 使用jmstemplate的发送消息 440 16.4.2 发送消息的配置文件 441 16.4.3 完成消息的发送 443 16.5 通过spring接收消息 443 16.5.1 使用jmstemplate的接收消息 443 16.5.2 接收消息的配置文件 444 16.5.3 完成消息的接收 445 16.6 pub/sub模型的jms消息处理 445 16.6.1 修改后的消息发送文件 446 16.6.2 消息发送的配置 447 16.6.3 修改后的消息接收文件 447 16.6.4 消息接收的配置 448 16.7 小结 449 第17章 利用spring发送邮件 450 17.1 e-mail简介 450 17.1.1 smtp协议简介 450 17.1.2 pop3协议简介 451 17.1.3 e-mail的用处 451 17.2 javamail介绍 451 17.2.1 javamail下载和安装 452 17.2.2 javamail的使用 452 17.3 spring的邮件抽象体系 458 17.4 使用spring的邮件体系发送邮件 459 17.4.1 使用mailsender发送简单邮件 459 17.4.2 使用javamailsender发送mimemessage信息 460 17.4.3 综合应用 463 17.5 小结 467 第18章 spring中的任务调度 469 18.1 任务调度的概念 469 18.1.1 任务调度简介 469 18.1.2 任务调度的作用 469 18.1.3 常见的任务调度支持类 469 18.2 jdk timer介绍 470 18.2.1 建立任务 470 18.2.2 调度任务 471 18.3 opensymphony的quartz介绍 472 18.3.1 quartz的下载和安装 472 18.3.2 quartz的使用 473 18.4 在spring中使用timer 477 18.4.1 继承timertask创建任务 477 18.4.2 使用methodinvokingtimertaskfactorybean创建任务 480 18.5 在spring中使用quartz 484 18.5.1 继承quartzjobbean创建作业 484 18.5.2 使用methodinvokingjobdetailfactorybean工厂bean创建作业 488 18.6 小结 490 第19章 利用spring简化测试 491 19.1 软件测试介绍 491 19.1.1 什么是软件测试 491 19.1.2 软件测试的目的 492 19.1.3 测试分类 492 19.2 junit介绍 493 19.2.1 单元测试概述 493 19.2.2 junit概述 493 19.2.3 junit的下载和安装 494 19.2.4 junit中常用的接口和类 494 19.2.5 junit的使用 495 19.3 利用spring的mock进行单元测试 499 19.3.1 spring的mock类 500 19.3.2 利用mock类测试控制器 500 19.4 利用di完成集成测试 503 19.4.1 spring的辅助测试类 503 19.4.2 持久层组件的测试 503 19.4.3 业务层组件测试 508 19.5 小结 512 第3部分 spring典型案例 513 第20章 完整实例:新闻发布系统 514 20.1 系统架构说明 514 20.1.1 架构处理流程框架图 514 20.1.2 系统架构说明 515 20.1.3 简单的处理流程示例 515 20.1.4 对系统架构的疑问 516 20.2 domain层 516 20.2.1 编写domain object 516 20.2.2 编写po的映射配置文件 522 20.2.3 spring整合hibernate 524 20.3 持久层 525 20.3.1 dao模式的简单介绍 525 20.3.2 使用dao模式的原因 526 20.3.3 编写dao的代码 527 20.4 业务逻辑层 531 20.4.1 facade模式介绍 531 20.4.2 facade接口的编写 532 20.4.3 facade接口的实现类 533 20.5 web层设计 538 20.5.1 mvc模式的简单回顾 538 20.5.1 web应用使用webwork 538 20.5.2 webwork的简单示例 539 20.5.3 webwork的action驱动模式 542 20.5.4 webwork整合spring 543 20.5.5 webwork与spring的整合的另一种方式 546 20.5.6 视图层与freemarker 548 20.6 系统实现及部分源代码 548 20.6.1 在eclipse下开发 548 20.6.2 前端与视图层编码 552 20.7 系统最后的思考 571 20.7.1 传统ejb架构的实现 572 20.7.1 ejb架构与轻量级架构的对比 574 20.8 小结 576 第 21章 完整实例:电子拍卖系统 577 21.1 项目介绍和主要技术 577 21.1.1 应用背景 577 21.1.2 功能介绍 577 21.1.3 相关技术介绍 578 21.2 总体设计和概要说明 579 21.2.1 系统的总体架构设计 579 21.2.2 系统的模块结构图 580 21.2.3 系统的业务流程图 580 21.2.4 数据库设计 581 21.2.5 系统用例图 582 21.3 详细设计 583 21.4 domain层实现 583 21.4.1 设计domain object 584 21.4.2 domain object的类图 584 21.4.3 domain object的实现 587 21.4.4 domain object的映射 593 21.5 dao层实现 598 21.5.1 dao的基础配置 599 21.5.2 dao组件的设计 600 21.5.3 dao组件的实现 605 21.5.4 dao组件的配置 611 21.6 service层实现 612 21.6.1 service组件设计 612 21.6.2 service层的异常处理 614 21.6.3 service组件的实现 614 21.7 web层实现 628 21.7.1 映射actionservlet的url 628 21.7.2 struts与spring的整合 628 21.7.3 控制器的实现 629 21.7.4 数据校验 631 21.7.5 异常处理 634 21.7.6 权限检查 635 21.7.7 控制器配置 637 21.7.8 图形验证码的实现 643 21.8 测试 646 21.8.1 利用abstracttransactionaldatasourcespringcontexttests测试dao组件 646 21.8.2 测试业务层组件 648 21.8.3 测试的运行 649 21.9 小结 649 第22章 完整实例:人力资源管理系统 651 22.1 jdk1.5的新特性介绍 651 22.1.1 泛型 651 22.1.2 静态导入 653 22.1.3 自动包装 654 22.1.4 foreach循环 655 22.1.5 元数据支持 655 22.2 项目背景和主要技术 656 22.2.1 应用背景 657 22.2.2 相关技术介绍 657 22.3 系统结构设计和概要分析 658 22.3.1 系统的模块结构图 658 22.3.2 系统的业务流程图 659 22.3.3 系统用例图 660 22.4 domain层实现 661 22.4.1 设计domain object 661 22.4.2 domain object的详细类图 662 22.4.4 数据库的生成 665 22.4.5 domain object的实现 666 22.4.6 domain object的映射 669 22.5 dao层实现 673 22.5.1 dao的基础配置 674 22.5.2 dao组件的设计 675 22.5.3 dao组件的实现 684 22.5.4 dao组件的配置 695 22.6 service层实现 696 22.6.1 service组件设计 696 22.6.2 service组件的实现 697 22.7 web层实现 710 22.7.1 映射actionservlet的url 710 22.7.2 struts与spring的整合 711 22.7.3 控制器的实现 712 22.7.4 数据校验 712 22.7.5 异常处理 715 22.7.6 权限检查 715 22.7.7 控制器配置 718 22.8 小结 723 |
商品评论(0条)