Blue Flower

spring3.x企业应用开发实战是一本Spring3.x企业级应用开发实战手册,由陈雄华和林开雄两人共同编著。本书本次改版不但将全书内容更新同步到Spring 3.0,还对原版内容进行了大面积的优化和调整。例如,对单元测试、WebService等内容进行了全新重写,对Spring事务管理各种疑难困惑详细剖析,此外还引入一章逼真再现一个实战性Web项目的开发全过程等。所有这些调整的目的都是希望在延续前版的“深入”的同时,能让本书更贴近于“实战”。笔者对Spring的源码进行了彻底的分析,深刻揭示了Spring框架的技术内幕,让读者知其然,更知其所以然,欢迎免费下载阅读。
202209171755356216310000

内容介绍

Spring 3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域开源平台的翘楚地位。Spring 3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是Java Web应用开发的难度,同时有效提升应用开发的优雅性。《spring3.x企业应用开发实战》是在精通Spring 2.x——企业应用开发详解的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。此外,本书重点突出了“实战性”的主题,力求使全书“从实际项目中来,到实际项目中去”。
《spring3.x企业应用开发实战》的结构如下:
本书分为5大篇,其中第1篇为Spring概述性知识;第2篇讲解了Spring的IoC和AOP的知识;第3篇讲解Spring的各种数据访问技术的内容;第4篇讲解业务层和Web层的技术;第5篇讲解面向实践的单元测试及实战项目。由于篇幅所限,笔者将邮件发送及WebService的章节以电子文档的形式作为附件放到光盘中,请读者通过光盘进行阅读。
第1章:对Spring框架进行宏观性的概述,力图使读者建立起对Spring整体性的认识。
第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界。
第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念。同时,对Spring框架的三个最重要的框架级接口进行了剖析,并对Bean的生命周期进行讲解。
第4章:讲解如何在Spring配置文件中使用Spring 3.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的说明。
第5章:对Spring容器进行解构,从内部探究Spring容器的体系结构和运行流程。此外,知识兔还将对Spring容器一些高级主题进行深入的阐述。
第6章:知识兔从Spring AOP的底层实现技术入手,一步步深入到Spring AOP的内核中,分析它的底层结构和具体实现。
第7章:对如何使用基于AspectJ配置AOP的知识进行了深入的分析,这包括使用XML Schema配置文件、使用注解进行配置等内容。
第8章:介绍了Spring所分享的DAO封装层,这包括Spring DAO的异常体系、数据访问模板等内容。
第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。
第10章:对实际应用中Spring事务管理各种疑难问题进行透彻的剖析,让读者对Spring事务管理不再有云遮雾罩的感觉。
第11章:讲解了如何使用Spring JDBC进行数据访问操作,知识兔还重点讲述了LOB字段处理、主键产生和获取等难点知识。
第12章:讲解了如何在Spring中集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM框架的混用和DAO层设计的知识。
第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及了使用JDK Timer和JDK 5.0执行器的知识。
第14章:介绍Spring 3.0新增的OXM模块,同时对XML技术进行了整体的了解。
第15章:对Spring MVC框架进行详细介绍,对REST风格编程方式进行重点讲解,同时还对Spring 3.0的校验和格式化框架如果和Spring MVC整合进行讲解。
第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的JUnit4+Unitils+ Mockito复合测试框架对如何测试数据库、Web的应用进行了深入的讲解。
第17章:以一个实际的项目为蓝本,带领读者从项目需求分析、项目设计、代码开发、单元测试直到应用部署经历整个实际项目的整体开发过程。
202209171755359953060001

章节目录

第1篇 概述第1章 Spring概述1.1 认识Spring1.2 关于SpringSource1.3 Spring带给知识兔什么1.4 Spring体系结构1.5 Spring 3.0的新功能1.5.1 核心API更新到Java 5.1.5.2 Spring表达式语言1.5.3 可通过Java类分享IoC配置信息1.5.4 通用类型转换系统和属性格式化系统1.5.5 数据访问层新增OXM功能1.5.6 Web层的增强1.5.7 其他1.6 Spring对Java版本的要求1.7 如何获取Spring1.8 小结第2章 快速入门2.1 实例功能概述2.1.1 比Hello World更适用的实例2.1.2 实例功能简介2.2 环境准备2.2.1 创建库表2.2.2 建立工程2.2.3 类包及Spring配置文件规划2.3 持久层2.3.1 建立领域对象2.3.2 UserDao2.3.3 LoginLogDao2.3.4 在Spring中装配DAO2.4 业务层2.4.1 UserService2.4.2 在Spring中装配Service2.4.3 单元测试2.5 展现层2.5.1 配置Spring MVC框架2.5.2 处理登录请求2.5.3 JSP视图页面2.6 运行Web应用2.7 小结第2篇 IoC和AOP第3章 IoC容器概述3.1 IoC概述3.1.1 通过实例理解IoC的概念3.1.2 IoC的类型3.1.3 通过容器完成依赖关系的注入3.2 相关Java基础知识3.2.1 简单实例3.2.2 类装载器ClassLoader3.2.3 Java反射机制3.3 资源访问利器3.3.1 资源抽象接口3.3.2 资源加载3.4 BeanFactory和ApplicationContext3.4.1 BeanFactory介绍3.4.2 ApplicationContext介绍3.4.3 父子容器3.5 Bean的生命周期3.5.1 BeanFactory中Bean的生命周期3.5.2 ApplicationContext中Bean的生命周期3.6 小结第4章 在IoC容器中装配Bean4.1 Spring配置概述4.1.1 Spring容器高层视图4.1.2 基于XML的配置4.2 Bean基本配置4.2.1 装配一个Bean4.2.2 Bean的命名4.3 依赖注入4.3.1 属性注入4.3.2 构造函数注入4.3.3 工厂方法注入4.3.4 选择注入方式的考量4.4 注入参数详解4.4.1 字面值4.4.2 引用其他Bean4.4.3 内部Bean4.4.4 null值4.4.5 级联属性4.4.6 集合类型属性4.4.7 简化配置方式4.4.8 自动装配4.5 方法注入4.5.1 lookup方法注入4.5.2 方法替换4.6 <bean>之间的关系4.6.1 继承4.6.2 依赖4.6.3 引用4.7 整合多个配置文件4.8 Bean作用域4.8.1 singleton作用域4.8.2 prototype作用域4.8.3 Web应用环境相关的Bean作用域4.8.4 作用域依赖问题4.9 FactoryBean4.10 基于注解的配置4.10.1 使用注解定义Bean4.10.2 使用注解配置信息启动Spring容器4.10.3 自动装配Bean4.10.4 Bean作用范围及生命过程方法4.11 基于Java类的配置4.11.1 使用Java类分享Bean定义信息4.11.2 使用基于Java类的配置信息启动Spring容器4.12 不同配置方式比较4.13 小结第5章 Spring容器高级主题5.1 Spring容器技术内幕5.1.1 内部工作机制5.1.2 BeanDefinition5.1.3 InstantiationStrategy5.1.4 BeanWrapper5.2 属性编辑器5.2.1 JavaBean的编辑器5.2.2 Spring默认属性编辑器5.2.3 自定义属性编辑器5.3 使用外部属性文件5.3.1 使用外部属性文件5.3.2 使用加密的属性文件5.3.3 属性文件自身的引用5.4 引用Bean的属性值5.5 国际化信息5.5.1 基础知识5.5.2 MessageSource5.5.3 容器级的国际化信息资源5.6 容器事件5.6.1 Spring事件类结构5.6.2 解构Spring事件体系的具体实现5.6.3 一个实例5.7 小结第6章 Spring AOP基础6.1 AOP概述6.1.1 AOP到底是什么6.1.2 AOP术语6.1.3 AOP的实现者6.2 基础知识6.2.1 带有横切逻辑的实例6.2.2 JDK动态代理6.2.3 CGLib动态代理6.2.4 AOP联盟6.2.5 代理知识小结6.3 创建增强类6.3.1 增强类型6.3.2 前置增强6.3.3 后置增强6.3.4 环绕增强6.3.5 异常抛出增强6.3.6 引介增强6.4 创建切面6.4.1 切点类型6.4.2 切面类型6.4.3 静态普通方法名匹配切面6.4.4 静态正则表达式方法匹配切面6.4.5 动态切面6.4.6 流程切面6.4.7 复合切点切面6.4.8 引介切面6.5 自动创建代理6.5.1 实现类介绍6.5.2 BeanNameAutoProxyCreator6.5.3 DefaultAdvisorAutoProxyCreator6.6 小结第7章 基于@AspectJ和Schema的AOP7.1 Spring对AOP的支持7.2 JDK 5.0注解知识快速进阶7.2.1 了解注解7.2.2 一个简单的注解类7.2.3 使用注解7.2.4 访问注解7.3 着手使用@AspectJ7.3.1 使用前的准备7.3.2 一个简单的例子7.3.3 如何通过配置使用@AspectJ切面7.4 @AspectJ语法基础7.4.1 切点表达式函数7.4.2 在函数入参中使用通配符7.4.3 逻辑运算符7.4.4 不同增强类型7.4.5 引介增强用法7.5 切点函数详解7.5.1 @annotation()7.5.2 execution()7.5.3 args()和@args()7.5.4 within()7.5.5 @within()和@target()7.5.6 target()的this()7.6 @AspectJ进阶7.6.1 切点复合运算7.6.2 命名切点7.6.3 增强织入的顺序7.6.4 访问连接点信息7.6.5 绑定连接点方法入参7.6.6 绑定代理对象7.6.7 绑定类注解对象7.6.8 绑定返回值7.6.9 绑定抛出的异常7.7 基于Schema配置切面7.7.1 一个简单切面的配置7.7.2 配置命名切点7.7.3 各种增强类型的配置7.7.4 绑定连接点信息7.7.5 Advisor配置7.8 混合切面类型7.8.1 混合使用各种切面类型7.8.2 各种切面类型总结7.9 JVM Class文件字节码转换基础知识7.9.1 java.lang.instrument包的工作原理7.9.2 如何向JVM中注册转换器7.9.3 使用JVM启动参数注册转换器的问题7.10 使用LTW织入切面7.10.1 Spring的LoadTimeWeaver7.10.2 使用LTW织入一个切面7.10.3 在Tomcat下的配置7.10.4 在其他Web应用服务器下的配置7.11 小结第3篇 数据访问第8章 Spring对DAO的支持8.1 Spring的DAO理念8.2 统一的异常体系8.2.1 Spring的DAO异常体系8.2.2 JDBC的异常转换器8.2.3 其他持久技术的异常转换器8.3 统一数据访问模板8.3.1 使用模板和回调机制8.3.2 Spring为不同持久化技术所分享的模板类8.4 数据源8.4.1 配置一个数据源8.4.2 获取JNDI数据源8.4.3 Spring的数据源实现类8.5 小结第9章 Spring的事务管理9.1 数据库事务基础知识9.1.1 何为数据库事务9.1.2 数据并发的问题9.1.3 数据库锁机制9.1.4 事务隔离级别9.1.5 JDBC对事务支持9.2 ThreadLocal基础知识9.2.1 ThreadLocal是什么9.2.2 ThreadLocal的接口方法9.2.3 一个TheadLocal实例9.2.4 与Thread同步机制的比较9.2.5 Spring使用ThreadLocal解决线程安全问题9.3 Spring对事务管理的支持9.3.1 事务管理关键抽象9.3.2 Spring的事务管理器实现类9.3.3 事务同步管理器9.3.4 事务传播行为9.4 编程式的事务管理9.5 使用XML配置声明式事务9.5.1 一个将被实施事务增强的服务接口9.5.2 使用原始的TransactionProxyFactoryBean9.5.3 基于tx/aop命名空间的配置9.6 使用注解配置声明式事务9.6.1 使用@Transactional注解9.6.2 通过AspectJ LTW引入事务切面9.7 集成特定的应用服务器9.7.1 BEA WebLogic9.7.2 BEA WebLogic9.8 小结第10章 Spring的事务管理难点剖析10.1 DAO和事务管理的牵绊10.1.1 JDBC访问数据库10.1.2 Hibernate访问数据库10.2 应用分层的迷惑10.3 事务方法嵌套调用的迷茫10.3.1 Spring事务传播机制回顾10.3.2 相互嵌套的服务方法10.4 多线程的困惑10.4.1 Spring通过单实例化Bean简化多线程问题10.4.2 启动独立线程调用事务方法10.5 联合军种作战的混乱10.5.1 Spring事务管理器的应对10.5.2 Hibernate+Spring JDBC混合框架的事务管理10.6 特殊方法成漏网之鱼10.6.1 哪些方法不能实施Spring AOP事务10.6.2 事务增强遗漏实例10.7 数据连接泄漏10.7.1 底层连接资源的访问问题10.7.2 Spring JDBC数据连接泄漏10.7.3 通过DataSourceUtils获取数据连接10.7.4 通过DataSourceUtils获取数据连接10.7.5 JdbcTemplate如何做到对连接泄漏的免疫10.7.6 使用TransactionAwareDataSourceProxy10.7.7 其他数据访问技术的等价类10.8 小结第11章 使用Spring JDBC访问数据库11.1 使用Spring JDBC11.1.1 JDBCTemplate小试牛刀11.1.2 在DAO中使用JDBCTemplate11.2 基本的数据操作11.2.1 更改数据11.2.2 返回数据库的表自增主键值11.2.3 批量更改数据11.2.4 查询数据11.2.5 查询单值数据11.2.6 调用存储过程11.3 BLOB/CLOB类型数据的操作11.3.1 如何获取本地数据连接11.3.2 相关的操作接口11.3.3 插入Lob类型的数据11.3.4 以块数据方式读取Lob数据11.3.5 以流数据方式读取Lob数据11.4 自增键和行集11.4.1 自增键的使用11.4.2 如何规划主键方案11.4.3 以行集返回数据11.5 其他类型的JDBCTemplate11.5.1 NamedParameterJDBCTemplate11.5.2 SimpleJDBCTemplate11.6 以OO方式访问数据库11.6.1 使用MappingSqlQuery查询数据11.6.2 使用SqlUpdate更新数据11.6.3 使用StoredProcedure执行存储过程11.6.4 SqlFunction类11.7 小结第12章 整合其他ORM框架12.1 Spring整合ORM技术12.2 在Spring中使用Hibernate12.2.1 配置SessionFactory12.2.2 使用HibernateTemplate12.2.3 处理LOB类型数据12.2.4 添加Hibernate事件监听器12.2.5 使用原生Hibernate API12.2.6 使用注解配置12.2.7 事务处理12.2.8 延迟加载的问题12.3 在Spring中使用myBatis12.3.1 配置SqlMapClient12.3.2 在Spring配置myBatis12.3.3 编写myBatis的DAO12.5 DAO层设计12.5.1 DAO基类的设计12.5.2 查询接口方法的设计12.5.3 分页查询接口设计12.6 小结第4篇 业务层及Web层技术第13章 任务调度和异步执行器13.1 任务调度概述13.2 Quartz快速进阶13.2.1 Quartz基础结构13.2.2 使用SimpleTrigger13.2.3 使用CronTrigger13.2.4 使用Calendar13.2.5 任务调度信息存储13.3 在Spring中使用Quartz13.3.1 创建JobDetail13.3.2 创建Trigger13.3.3 创建Scheduler13.4 Spring中使用JDK Timer13.4.1 Timer和TimerTask13.4.2 Spring对JDK Timer的支持13.5 Spring对JDK 5.0 Executor的支持13.5.1 了解JDK 5.0的Executor13.5.2 Spring对Executor所分享的抽象13.6 实际应用中的任务调度13.6.1 如何产生任务13.6.2 任务调度对应用程序集群的影响13.6.3 任务调度云13.6.4 Web应用程序中调度器的启动和关闭问题13.7 小结第14章 使用OXM进行对象XML映射14.1 认识XML解析技术14.1.1 什么是XML14.1.2 XML的处理技术14.2 XML处理利器:XStream14.2.1 XStream概述14.2.2 快速入门14.2.3 使用XStream别名14.2.4 XStream转换器14.2.5 XStream注解14.2.6 流化对象14.2.7 持久化API14.2.8 额外功能:处理JSON14.3 其他常见O/X Mapping开源项目14.3.1 JAXB14.3.2 XMLBeans14.3.3 Castor14.3.4 JiBX14.3.5 总结比较14.4 与Spring OXM整合14.4.1 Spring OXM概述14.4.2 整合OXM实现者14.4.3 如何在Spring中进行配置14.4.4 Spring OXM 简单实例14.5 小结第15章 Spring MVC15.1 Spring MVC概述15.1.1 体系结构15.1.2 配置DispatcherServlet15.1.3 一个简单的实例15.2 注解驱动的控制器15.2.1 使用@RequestMapping映射请求15.2.2 请求处理方法签名概述15.2.3 处理方法签名详细说明15.2.4 使用HttpMessageConverter<T>15.2.5 处理模型数据15.3 处理方法的数据绑定15.3.1 数据绑定流程剖析15.3.2 数据转换15.3.3 数据格式化15.3.4 数据校验15.4 视图和视图解析器15.4.1 认识视图15.4.2 认识视图解析器15.4.3 JSP和JSTL15.4.4 模板视图15.4.5 Excel15.4.6 PDF15.4.7 输出XML15.4.8 输出JSON15.4.9 使用XmlViewResolver15.4.10 使用ResourceBundle ViewResolver15.4.11 混合使用多种视图技术15.5 本地化解析15.5.1 本地化概述15.5.2 使用CookieLocaleResolver15.5.3 使用SessionLocaleResolver15.5.4 使用LocaleChangeInterceptor15.6 文件上传15.6.1 配置MultipartResolver15.6.2 编写控制器和文件上传表单页面15.7 杂项15.7.1 静态资源处理15.7.2 装配拦截器15.7.3 异常处理15.8 小结第5篇 测试及实战第16章 实战型单元测试16.1 单元测试概述16.1.1 为什么需要单元测试16.1.2 单元测试之误解16.1.3 单元测试之困境16.1.4 单元测试基本概念16.2 JUnit 4快速进阶16.2.1 JUnit 4概述16.2.2 JUnit 4生命周期16.2.3 使用JUnit16.3 模拟利器Mockito16.3.1 模拟测试概述16.3.2 创建Mock对象16.3.3 设定Mock对象的期望行为及返回值16.3.4 验证交互行为16.4 测试整合之王Unitils16.4.1 Unitils概述16.4.2 集成Spring16.4.3 集成Hibernate16.4.4 集成Dbunit16.4.5 自定义扩展模块16.5 使用Unitils测试DAO层16.5.1 数据库测试的难点16.5.2 扩展Dbunit用Excel准备数据16.5.3 测试实战16.6 使用unitils测试Service层16.7 测试Web层16.7.1 对LoginController进行单元测试16.7.2 使用Spring Servlet API模拟对象16.7.3 使用Spring RestTemplate测试16.7.4 使用Selenium测试16.8 小结第17章 实战案例开发17.1 论坛案例概述17.1.1 论坛整体功能结构17.1.2 论坛用例描述17.1.3 主要功能流程描述17.2 系统设计17.2.1 技术框架选择17.2.2 Web目录结构及类包结构规划17.2.3 单元测试类包结构规划17.2.4 系统的结构图17.2.5 PO的类设计17.2.6 持久层设计17.2.7 服务层设计17.2.8 Web层设计17.2.9 数据库设计17.3 开发前的准备17.4 持久层开发17.4.1 PO类17.4.2 DAO基类17.4.3 通过扩展基类所定义DAO类17.4.4 DAO Bean的装配17.4.5 使用Hibernate二级缓存17.5 对持久层进行测试17.5.1 配置Unitils测试环境17.5.2 准备测试数据库及测试数据17.5.3 编写DAO测试基类17.5.4 编写BoardDao测试用例17.6 服务层开发17.6.1 UserService的开发17.6.2 ForumService的开发17.6.3 服务类Bean的装配17.7 对服务层进行测试17.7.1 编写Service测试基类17.7.2 编写ForumService测试用例17.8 Web层开发17.8.1 BaseController的基类17.8.2 用户登录和注销17.8.3 用户注册17.8.4 论坛管理17.8.5 论坛普通功能17.8.6 分页显示论坛版块的主题帖子17.8.7 web.xml配置17.8.8 Spring MVC配置17.9 对Web层进行测试17.9.1 编写Web测试基类17.9.2 编写ForumManageController测试用例17.10 部署和运行应用17.11 小结以下内容详见本书配书光盘:附录A JavaMail发送邮件附录B 在Spring中开发Web Service

使用说明

1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读试读>

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看内容!

如何获取密码?

 

点击下载