Spring 3.x企业应用开发实战.pdf

Spring 3.x企业应用开发实战.pdf
 

书籍描述

编辑推荐
《Spring 3.x企业应用开发实战》延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。此外,《Spring 3.x企业应用开发实战》重点突出了“实战性”的主题,力求使全书“从实际项目中来,到实际项目中去”。

作者简介
陈雄华,2002年毕业于厦门大学计算机与信息工程学院,获硕士学位。是宝宝淘科技有限公司的创始人之一。这是一个服务于全国母婴用户的综合性网站,作者负责网站整体框架设计牲及核心代码开发的工作。技术开发之余,常将经验所得行诸于文字,作者是天极网、IT168的专栏作者,在各大技术网站、报刊杂志发表过数十篇技术文章,广受读者好评。于2005年出版《精通JBuilder2005》,本书是2005年最畅销技术图书之一。
林开雄,2006年毕业于集美大学软件工程专业,获取学士学位。资深软件工程师,精通Spring等优秀开源技术在企业的应用开发,主要研究方向包括业务基础平台、BPM、智能报表、分布式等技术。

目录
第1篇概述
1.1认识Spring
1.2关于SpringSource
1.3Spring带给我们什么
1.4Spring体系结构
1.5Spring3.0的新功能
1.5.1核心API更新到Java5.0
1.5.2Spring表达式语言
1.5.3可通过Java类提供IoC配置信息
1.5.4通用类型转换系统和属性格式化系统
1.5.5数据访问层新增OXM功能
1.5.6Web层的增强
1.5.7其他
1.6Spring对Java版本的要求
1.7如何获取Spring
1.8小结
2.1实例功能概述
2.1.1比HelloWorld更适用的实例
2.1.2实例功能简介
2.2环境准备
2.2.1创建库表
2.2.2建立工程
2.2.3类包及Spring配置文件规划
2.3持久层
2.3.1建立领域对象
2.3.2USerDaO
2.3.3LoginLogDao
2.3.4在Spring中装配DAO
2.4业务层
2.4.1UserService
2.4.2在Spring中装配SerVice
2.4.3单元测试
2.5展现层
2.5.1配置SpringMVC框架
2.5.2处理登录请求
2.5.3JSP视图页面
2.6运行Web应用
2.7小结
第2篇IoC和AOP
第3章IoC容器概述
3.1IoC概述
3.1.1通过实例理解IoC的概念
3.1.2IoC的类型
3.1.3通过容器完成依赖关系的注入
3.2相关Java基础知识
3.2.1简单实例
3.2.2类装载器ClassLoader
3.2.3Java反射机制
3.3资源访问利器
3.3.1资源抽象接口
3.3.2资源加载
3.4BeanFactory和ApplicationContext
3.4.1BeanFactory介绍
3.4.2ApplicationContext介绍
3.4.3父子容器
3.5Bean的生命周期
3.5.1BeanFactory中Bean的生命周期
3.5.2ApplicationContext中Bean的生命周期
3.6小结
4.1Spring配置概述
4.1.1Spring容器高层视图
4.1.2基于XML的配置
4.2Bean基本配置
4.2.1装配一个Bean
4.2.2Bean的命名
4.3依赖注入
4.3.1属性注入
4.3.2构造函数注入
4.3.3工厂方法注入
4.3.4选择注入方式的考量
4.4注入参数详解
4.4.1字面值
4.4.2引用其他Bean
4.4.3内部Beall
4.4.4null值
4.4.5级联属性
4.4.6集合类型属性
4.4.7简化配置方式
4.4.8自动装配
4.5方法注入
4.5.1lookup方法注入
4.5.2方法替换
4.6 之间的关系
4.6.1继承
4.6.2依赖
4.6.3引用
4.7整合多个配置文件
4.8Bean作用域
4.8.1singleton作用域
4.8.2prototype作用域
4.8.3Web应用环境相关的Bean
作用域
4.8.4作用域依赖问题
4.9FaCtODrBean
4.10基于注解的配置
4.10.1使用注解定义Bean
4.10.2使用注解配置信息启动Spring容器
4.10.3自动装配BeaII
4.10.4Bean作用范围及生命过程方法
4.11基于Java类的配置
4.11.1使用Java类提供Bean定义信息
4.11.2使用基于Java类的配置信息启动Spring容器
4.12不同配置方式比较
4.13小结
5.1Spring容器技术内幕
5.1.1内部工作机制
5.1.2BeanDefinition
5.1.3InstantiationStrategy
5.1.4BeanWrapper
5.2属性编辑器
5.2.1JavaBean的编辑器
5.2.2Spring默认属性编辑器
5.2.3自定义属性编辑器
5.3使用外部属性文件
5.3.1使用外部属性文件
5.3.2使用加密的属性文件
5.3.3属性文件自身的引用
5.4引用Bean的属性值
5.5国际化信息
5.5.1基础知识
5.5.2MessageSource
5.5.3容器级的国际化信息资源
5.6容器事件
5.6.1Spring事件类结构
5.6.2解构Spring事件体系的具体实现
5.6.3一个实例
5.7小结
6.1AOP概述
6.1.1AOP到底是什么
6.1.2AOP术语
6.1.3AOP的实现者
6.2基础知识
6.2.1带有横切逻辑的实例
6.2.2JDK动态代理
6.2.3CGLib动态代理
6.2.4AOP联盟
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.2BeanNameAutoProxyCreator
6.5.3DefaultAdvisorAutoProxyCreator
6.6小结
7.1Spring对AOP的支持
7.2JDK5.0注解知识快速进阶
7.2.1了解注解
7.2.2一个简单的注解类
7.2.3使用注解
7.2.4访问注解
7.3着手使用@AspectJ
7.3.1使用前的准备
7.3.2一个简单的例子
7.3.3如何通过配置使用@AspectJ切面
7.4@AspecU语法基础
7.4.1切点表达式函数
7.4.2在函数入参中使用通配符
7.4.3逻辑运算符
7.4.4不同增强类型
7.4.5引介增强用法
7.5切点函数详解
7.5.1@annotation()
7.5.2execution()
7.5.3args()和@args()
7.5.4within()
7.5.5@within()和@target()
7.5.6target()的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.5Advisor配置
7.8混合切面类型
7.8.1混合使用各种切面类型
7.8.2各种切面类型总结~
7.9JVMClass文件字节码转换基础知识
7.9.1java.lang.instrument包的工作原理
7.9.2如何向JVM中注册转换器
7.9.3使用JVM启动参数注册转换器的问题
7.10使用LTW织入切面
7.10.1Spring的LoadTimeWeaver
7.10.2使用LTW织入一个切面
7.10.3在Tomcat下的配置
7.10.4在其他Web应用服务器下的配置
7.11小结
第3篇数据访问
第8章Spring对DAO的支持
8.1Spring的DAO理念
8.2统一的异常体系
8.2.1Spring的DAO异常体系
8.2.2JDBC的异常转换器
8.2.3其他持久技术的异常转换器
8.3统一数据访问模板
8.3.1使用模板和回调机制
8.3.2Spring为不同持久化技术所提供的模板类
8.4数据源
8.4.1配置一个数据源
8.4.2获取JNDI数据源
8.4.3Spring的数据源实现类
8.5小结
9.1数据库事务基础知识
9.1.1何为数据库事务
9.1.2数据并发的问题
9.1.3数据库锁机制
9.1.4事务隔离级别
9.1.5JDBC对事务支持
9.2ThreadLocal基础知识
9.2.1ThreadLocal是什么
9.2.2ThreadLocal的接口方法
9.2.3一个TheadLocal实例
9.2.4与Thread同步机制的比较
9.2.5Spring使用ThreadLocal解决
线程安全问题
9.3Spring对事务管理的支持
9.3.1事务管理关键抽象
9.3.2Spring的事务管理器实现类
9.3.3事务同步管理器
9.3.4事务传播行为
9.4编程式的事务管理
9.5使用XML配置声明式事务
9.5.1一个将被实施事务增强的服务接口
9.5.2使用原始的
TransactionProxyFactoryBean
9.5.3基于tx/aop命名空间的配置
9.6使用注解配置声明式事务
9.6.1使用@Transactional注解
9.6.2通过AspecULTW引入事务切面
9.7集成特定的应用服务器
9.7.1BEAWebLogic
9.7.2BEAWebLogic
9.8小结
10.1DAO和事务管理的牵绊
10.1.1JDBC访问数据库
10.1.2Hibemate访问数据库
10.2应用分层的迷惑
10.3事务方法嵌套调用的迷茫
10.3.1Spring事务传播机制回顾
10.3.2相互嵌套的服务方法
10.4多线程的困惑
10.4.1Spring通过单实例化Bean简化多线程问题
10.4.2启动独立线程调用事务方法
10.5联合军种作战的混乱
10.5.1Spring事务管理器的应对
10.5.2Hibernate+SpringjDBC混合框架的事务管理
10.6特殊方法成漏网之鱼
10.6.1哪些方法不能实施SpringAOP事务
10.6.2事务增强遗漏实例
10.7数据连接泄漏
10.7.1底层连接资源的访问问题
10.7.2SpringjDBC数据连接泄漏
10.7.3通过DataSourceUtils获取数据连接
IO7.4通过DataSourceUtils获取数据连接
10.7.5JdbcTemplate如何做到对连接泄漏的免疫
10.7.6使用TransactionAwareDataSourceProxy
10.7.7其他数据访问技术的等价类
10.8小结
11.1使用SpringJDBC
11.1.1JdbcTemplate小试牛刀
11.1.2在DAO中使用JdbcTemplate
11.2基本的数据操作
11.2.1更改数据
11.2.2返回数据库的表自增主键值
11.2.3批量更改数据
11.2.4查询数据
11.2.5查询单值数据
11.2.6调用存储过程
11.3BLOB/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其他类型的JdbcTemplate
11.5.1NamedParameterjdbcTemplate
11.5.2SimplejdbcTemplate
11.6以OO方式访问数据库
11.6.1使用MappingSqIQuery查询数据
11.6.2使用SqlUpdate更新数据
11.6.3使用StoredProcedure执行存储过程
11.6.4SqlFunction类
11.7小结
12.1Spring整合ORM技术
12.2在Spring中使用Hibemate
12.2.1配置SessionFactory
12.2.2使用HibemateTemplate
12.2.3处理LOB类型数据
12.2.4添加Hibernate事件监听器
12.2.5使用原生HibemateAPI
12.2.6使用注解配置
12.2.7事务处理
12.2.8延迟加载的问题
12.3在Spring中使用myBatis
12.3.1配置SqlMapClient
12.3.2在Spring配置myBatis
12.3.3编写myBatis的DAO
12.5DAO层设计
12,5.1DAO基类的设计
12.5.2查询接口方法的设计
12.5.3分页查询接口设计
12.6小结
……
第4篇业务层及Web层技术
第5篇测试及实战
附录AJavaMail发送邮件
附录B在Spring中开发WebService

文摘
版权页:

Spring 3.x企业应用开发实战

插图:

Spring 3.x企业应用开发实战

12.1Spring整合ORM技术
Spring的开放性和扩展性在持久化技术领域得到了充分的证明,Spring不但直接提供了SpringJDBC,还整合了JPA、Hibernate、iBatis、JDO等ORM领域的代表者。使用者完全可以根据需要作出适合自己的选择。
在第11章中,我们详细讲解了Spring对JDBC的API的封装,其中大部分的思路和整合其他ORM框架是一脉相通的:在资源管理、DAO模板类、事务管理、DAO异常体系等方面,Spring始终保持整合方式上的统一。在Spring中掌握了一种持久化技术后,切换到另一种持久化技术并不需要花费什么代价。
Spring在集成ORM框架时,始终走民主亲民的路线。它既提供了方便的模板类对原ORM进行简化封装,以一种更具Spring的风格使用ORM技术。同时,在保证继续享受Spring通用功能的情况下,开发者还可能使用ORM框架原生的API编写程序。这让一直使用ORM原生API编程的开发者感到自然,不会存在过渡上的障碍。
当我们使用某种ORM框架时,为了让其更适合项目的需要,降低使用难度,一般情况下,都会在原有ORMAPI的基础上编写一套封装类。Spring高屋建瓴地为我们做了类似的工作,所以在决定花费力气并冒着风险去构造类似的底层架构之前,最好事先参考一下Spring的解决方案,而不要急着另起炉灶。
使用Spring所提供的ORM整合方案,我们可以获得许多好处。
方便基础设施的搭建
不同的ORM技术都有一套自己的方案以初始化框架、搭建基础设施等。在搭建基础设施中,数据源是不可或缺的资源,不同ORM框架的实现方式各不相同:如JPA中通过persistence.xml定义数据源,而Hibernate在hibernate.cfg.xml中配置数据源,目的相同但方法迥异。在数据源基础上,不同的ORM框架拥有自己的基础实例,如Hibernate的SessionFactory、iBatis的SqlMapClient,它们是ORM程序运行时的底层设施,在程序级别代表着ORM框架本身。在学习不同的ORM框架知识时,往往都会有一个独立的篇章专门讲解如何初始化这些实例。在Spring中对于不同的ORM框架,首先,始终可以采用相同方式配置数据源:其次,Spring为不同的ORM框架提供相应的FactoryBean,用以初始化ORM框架的基础设施,可以将它们当成普通Bean对待,唯一的差别只是属性的不同而已。

内容简介
《Spring 3.x企业应用开发实战》共分为5大篇。其中,第1篇为Spring概述性知识。第2篇讲解了Spring的IoC和AOP的知识。第3篇讲解Spring的各种数据访问技术的内容。第4篇讲解业务层和Web层的技术。第5篇讲解面向实践的单元测试及实战项目。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多