• Spring.3.x企业应用开发实战(完整版).part2

     Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。   Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升应用开发的优雅性。   《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。此外,本书重点突出了“实战性”的主题,力求使全书“从实际项目中来,到实际项目中去”。 目录 第1篇 概述 第1章 Spring概述 1.1 认识Spring 1.2 关于SpringSource 1.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 如何获取Spring 1.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 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.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 类装载器ClassLoader 3.2.3 Java反射机制 3.3 资源访问利器 3.3.1 资源抽象接口 3.3.2 资源加载 3.4 BeanFactory和ApplicationContext 3.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容器中装配Bean 4.1 Spring配置概述 4.1.1 Spring容器高层视图 4.1.2 基于XML的配置 4.2 Bean基本配置 4.2.1 装配一个Bean 4.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 引用其他Bean 4.4.3 内部Bean 4.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 FactoryBean 4.10 基于注解的配置 4.10.1 使用注解定义Bean 4.10.2 使用注解配置信息启动Spring容器 4.10.3 自动装配Bean 4.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 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 BeanWrapper 5.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 MessageSource 5.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 BeanNameAutoProxyCreator 6.5.3 DefaultAdvisorAutoProxyCreator 6.6 小结 第7章 基于@AspectJ和Schema的AOP 7.1 Spring对AOP的支持 7.2 JDK 5.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 @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的LoadTimeWeaver 7.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 使用原始的 TransactionProxyFactoryBean 9.5.3 基于tx/aop命名空间的配置 9.6 使用注解配置声明式事务 9.6.1 使用@Transactional注解 9.6.2 通过AspectJ LTW引入事务切面 9.7 集成特定的应用服务器 9.7.1 BEA WebLogic 9.7.2 BEA WebLogic 9.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 使用TransactionAwareDataSourceProxy 10.7.7 其他数据访问技术的等价类 10.8 小结 第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 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.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 其他类型的JDBCTemplate 11.5.1 NamedParameterJDBCTemplate 11.5.2 SimpleJDBCTemplate 11.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中使用Hibernate 12.2.1 配置SessionFactory 12.2.2 使用HibernateTemplate 12.2.3 处理LOB类型数据 12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 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.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 使用SimpleTrigger 13.2.3 使用CronTrigger 13.2.4 使用Calendar 13.2.5 任务调度信息存储 13.3 在Spring中使用Quartz 13.3.1 创建JobDetail 13.3.2 创建Trigger 13.3.3 创建Scheduler 13.4 Spring中使用JDK Timer 13.4.1 Timer和TimerTask 13.4.2 Spring对JDK Timer的支持 13.5 Spring对JDK 5.0 Executor的支持 13.5.1 了解JDK 5.0的Executor 13.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 什么是XML 14.1.2 XML的处理技术 14.2 XML处理利器:XStream 14.2.1 XStream概述 14.2.2 快速入门 14.2.3 使用XStream别名 14.2.4 XStream转换器 14.2.5 XStream注解 14.2.6 流化对象 14.2.7 持久化API 14.2.8 额外功能:处理JSON 14.3 其他常见O/X Mapping开源项目 14.3.1 JAXB 14.3.2 XMLBeans 14.3.3 Castor 14.3.4 JiBX 14.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 MVC 15.1 Spring MVC概述 15.1.1 体系结构 15.1.2 配置DispatcherServlet 15.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和JSTL 15.4.4 模板视图 15.4.5 Excel 15.4.6 PDF 15.4.7 输出XML 15.4.8 输出JSON 15.4.9 使用XmlViewResolver 15.4.10 使用ResourceBundle ViewResolver 15.4.11 混合使用多种视图技术 15.5 本地化解析 15.5.1 本地化概述 15.5.2 使用CookieLocaleResolver 15.5.3 使用SessionLocaleResolver 15.5.4 使用LocaleChangeInterceptor 15.6 文件上传 15.6.1 配置MultipartResolver 15.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 使用JUnit 16.3 模拟利器Mockito 16.3.1 模拟测试概述 16.3.2 创建Mock对象 16.3.3 设定Mock对象的期望行为及返回值 16.3.4 验证交互行为 16.4 测试整合之王Unitils 16.4.1 Unitils概述 16.4.2 集成Spring 16.4.3 集成Hibernate 16.4.4 集成Dbunit 16.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

    2013-05-31
    27
  • Spring3.x企业应用开发实战(完整版) part1

     Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。   Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升应用开发的优雅性。   《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。此外,本书重点突出了“实战性”的主题,力求使全书“从实际项目中来,到实际项目中去”。 目录 第1篇 概述 第1章 Spring概述 1.1 认识Spring 1.2 关于SpringSource 1.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 如何获取Spring 1.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 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.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 类装载器ClassLoader 3.2.3 Java反射机制 3.3 资源访问利器 3.3.1 资源抽象接口 3.3.2 资源加载 3.4 BeanFactory和ApplicationContext 3.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容器中装配Bean 4.1 Spring配置概述 4.1.1 Spring容器高层视图 4.1.2 基于XML的配置 4.2 Bean基本配置 4.2.1 装配一个Bean 4.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 引用其他Bean 4.4.3 内部Bean 4.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 FactoryBean 4.10 基于注解的配置 4.10.1 使用注解定义Bean 4.10.2 使用注解配置信息启动Spring容器 4.10.3 自动装配Bean 4.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 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 BeanWrapper 5.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 MessageSource 5.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 BeanNameAutoProxyCreator 6.5.3 DefaultAdvisorAutoProxyCreator 6.6 小结 第7章 基于@AspectJ和Schema的AOP 7.1 Spring对AOP的支持 7.2 JDK 5.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 @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的LoadTimeWeaver 7.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 使用原始的 TransactionProxyFactoryBean 9.5.3 基于tx/aop命名空间的配置 9.6 使用注解配置声明式事务 9.6.1 使用@Transactional注解 9.6.2 通过AspectJ LTW引入事务切面 9.7 集成特定的应用服务器 9.7.1 BEA WebLogic 9.7.2 BEA WebLogic 9.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 使用TransactionAwareDataSourceProxy 10.7.7 其他数据访问技术的等价类 10.8 小结 第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 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.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 其他类型的JDBCTemplate 11.5.1 NamedParameterJDBCTemplate 11.5.2 SimpleJDBCTemplate 11.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中使用Hibernate 12.2.1 配置SessionFactory 12.2.2 使用HibernateTemplate 12.2.3 处理LOB类型数据 12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 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.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 使用SimpleTrigger 13.2.3 使用CronTrigger 13.2.4 使用Calendar 13.2.5 任务调度信息存储 13.3 在Spring中使用Quartz 13.3.1 创建JobDetail 13.3.2 创建Trigger 13.3.3 创建Scheduler 13.4 Spring中使用JDK Timer 13.4.1 Timer和TimerTask 13.4.2 Spring对JDK Timer的支持 13.5 Spring对JDK 5.0 Executor的支持 13.5.1 了解JDK 5.0的Executor 13.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 什么是XML 14.1.2 XML的处理技术 14.2 XML处理利器:XStream 14.2.1 XStream概述 14.2.2 快速入门 14.2.3 使用XStream别名 14.2.4 XStream转换器 14.2.5 XStream注解 14.2.6 流化对象 14.2.7 持久化API 14.2.8 额外功能:处理JSON 14.3 其他常见O/X Mapping开源项目 14.3.1 JAXB 14.3.2 XMLBeans 14.3.3 Castor 14.3.4 JiBX 14.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 MVC 15.1 Spring MVC概述 15.1.1 体系结构 15.1.2 配置DispatcherServlet 15.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和JSTL 15.4.4 模板视图 15.4.5 Excel 15.4.6 PDF 15.4.7 输出XML 15.4.8 输出JSON 15.4.9 使用XmlViewResolver 15.4.10 使用ResourceBundle ViewResolver 15.4.11 混合使用多种视图技术 15.5 本地化解析 15.5.1 本地化概述 15.5.2 使用CookieLocaleResolver 15.5.3 使用SessionLocaleResolver 15.5.4 使用LocaleChangeInterceptor 15.6 文件上传 15.6.1 配置MultipartResolver 15.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 使用JUnit 16.3 模拟利器Mockito 16.3.1 模拟测试概述 16.3.2 创建Mock对象 16.3.3 设定Mock对象的期望行为及返回值 16.3.4 验证交互行为 16.4 测试整合之王Unitils 16.4.1 Unitils概述 16.4.2 集成Spring 16.4.3 集成Hibernate 16.4.4 集成Dbunit 16.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

    2013-05-31
    20
  • C#字符串和正则表达式参考手册(中文版)

    内容简介回到顶部↑    文本操作几乎存在于任何应用程序中,合理地处理文本可以提高应用程序的性能。    本书详细阐述了.NET Framework处理文本的方式,学习如何使用String类和StringBuilder类在.NET中构建字符串,讲述在字符串和其他数据类型之间转换时所涉及的一些问题,并论述了如何用不同语言显示文本。本书还重点介绍了如何使用正则表达式匹配文本模式,描述了分组、替换和反向引用,并讨论了如何构建自己的正则表达式模式,以匹配具体的数据类型。最后,附录列出了String类和StringBuilder类的方法、属性和构造函数,以及许多正则表达式语法、选项和特殊字符。    本书适合于从事.NET开发,并想在应用程序中提高文本处理效率的C#开发人员。 第1章 系统处理文本的方式 1.1 .net framework 1.1.1 公共语言运行时 1.1.2 .net framework类库 1.2 文本是一种数据类型 1.2.1 c#的数据类型 1.2.2 字符和字符集 1.2.3 字符串数据类型 1.3 文本存储 l.3.l 高速缓存技术 1.3.2 内置 l.3.3 其他方法 l.3.4 .net实现 1.4 字符串操作 1.4.l 连接字符串 1.4.2 从字符串中提取子串 1.4.3 比较字符串 l.4.4 字符串转换 1.4.5 格式化字符串 1.5 字符串用法 .1.5.l 构建字符串 1.5.2 分析字符串 1.6 国际化 1.7 小结 第2章 string类和stringbuilder类 2.l 学习本章要用到的工具 2.2 文本结构 2.3 string类 2.3.l 内置字符串 2. 3.2 构建 2. 3.3 字符串的转义 2.4 stringbuilder类 2.4.1 长度和容量 2.4.2 tostring()方法 2.5 字符串操作 2.5.l 连接宇符串 2.5.2 从字符串中提取子串 2.5.3 比较字符串 2.5.4 格式化 2.6 字符串的使用 2.6.l 建立字符串 2.6.2 标记 2.6.3 颠倒字符串次序 2.6.4 插入、删除和替换 2.7 小结 第3章 字符串转换 3.1 tostring()方法 3.2 把数值表示为字符串 3.3 把日期和时间表示为字符串 3.4 把其他对象表示为字符串 3.5 用字符串表示字符串 3.6 把字符串转换为其他类型 3. 6. 1 把字符串转换成数字 3.6.2 把字符串转换为日期和时间 3.7 在集合与数组之间移动字符串 3.7.l 数组 3.7.2 arraylist对象 3.7.3 idictionary对象 3.8 小结 第4章 国际化 4.1 unicode 4.2 net framework的编码类 4.3 处理字符串 4.3.1 cultureinfo类 4.3.2 大写和小写 4.3.3 不需要区分文化的操作 4.3.4 排序 4.4 处理字符 4.4.l 关于字符的必要信息 4.4.2 代理对 4.4.3 组合字符 4.5 格式化unicode字符串 4.6 字符串用作资源 4.7 小结 第5章 正则表达式 5.1 system.text.regularexpressions命名空间 5.2 regex类 5.2.1 regexoptions枚举 5.2.2 类构造函数 5.2.3 ismatch()方法 5.2.4 replace()方法 5.2.5 split()方法 5.3 match类和matchcollection类 5.4 regex测试器示例 5.5 正则表达式基础语法 5. 5.l 匹配不同类型的字符 5.5.2 指定匹配位置 5.5.3 指定重复字符 5.5.4 指定替换 5. 5.5 特殊字符 5.6 小结 第6章 正则表达式的高级概念 6.l 分组、替换和反向引用 6.1.l 简单的分组 6.l.2 group类和 groupcollection类 6.1.3 替换 6. 1.4 反向引用 6.1.5 高级组 6.2 在正则表达式中作决策 6.3 在正则表达式内设定选项 6.4 正则表达式引擎的规则 6.5 小结 第7章 正则表达式模式 7.l 验证字符 7.2 验证数字 7.2.l 只包含数字 7.2.2 只包含整型数 7.2.3 只包含浮点数 7.3 验证电话号码 7.4 验证邮政编码 7.5 验证电子邮件地址 7.5.l 验证ip地址 7.5.2 验证城名 7.5.3 验证个人地址 7.5.4 验证完整的地址 7.6 分析smtp日志文件 7.7 html标记 7.7. 1 从用户输人中清除 html 7. 7.2 提取所有html标记 7.7.3 html提取示例 7.8 小结 附录a string类 a.l 构造函数 a.2 属性 a.3 方法 附录b stringbuilder类 b.l 构造函数 b.2 属性 b.3 方法 附录c 正则表达式语法 c.l 匹配字符 c.2 重复字符 c.3 定位字符 c.4 分组字符 c.5 决策字符 c.6 替换字符 c.7 转义序列 c.8 选项标志 附录d 在c#中管理文化上正确的日期和时间格式 d.l 使用datetime的控制台示例 d.1.l 第一个控制台示例 d.1.2 管理字符串格式的注意事项 d.2 asp的一些示例 d.2.l 修正datesquares d.2.2 另一个日期示例 d.3 小结 附录e 技术支持、勘误表和代码下载 e.l 如何下载本书的示例代码 e.2 勘误表 e.3 电子邮件支持 e.4 p2p.wrox.com

    2012-09-12
    10
  • C++设计新思维:泛型编程与设计模式之应用(中文版)

    本书从根本上展示了generic patterns(泛型模式)或pattern templates(模式模板),并将它们视之为“在C++中创造可扩充设计”的一种功能强大的新方法。这种方法结合了template和patterns,你可能未曾想过,但的确存在。为C++打开了全新视野,而且不仅仅在编程方面,还在于软件设计本身;对软件分析和软件体系结构来说,它也具有丰富的内涵。 媒体推荐 书评 Modern C++ Design是一部重要的著作。它从根本上展示了generic patterns(泛型模式)或pattern templates(模式模板),并将它们视之为“在C++中创造可扩充设计”的一种功能强大的新方法。这种方法结合了template和patterns,你可能未曾想过,但的确存在。如果你的工作涉及C++设计和编程,那么你应该阅读本书。我极力推荐。 目录 译序by 候捷 译序by 於春景 目录 序言 by Scott Meyers 序言 by John Vlissides 前言 致谢 第一篇 技术(Techniques) 第1章 基于Policy的Class设计(Policy-Based Class Design) 第2章 技术(Techniques) 第3章 Typelists 第4章 小型对象分配技术(Small-Object Allocation) 第二篇 组件(Components) 第5章 泛化仿函数(Generalized Functors) 第6章 Singletons(单件)实作技术 第7章 Smart Pointers(智能指针) 第8章 Object Factories(对象工厂) 第9章 Abstract Factory(抽象工厂) 第10章Visitor(访问者、视察者) 第11章 Multimethods 附录 一个超迷你的多线程程序库(A Minimalist Multithreding Library) 参考书目(Bibliography) 索引(Index)

    2012-09-11
    10
  • Absolute C++中文版(原书第2版)-完美的C++教程,文档中还包含英文版

    本书是讲解c++语言程序设计的优秀教程。全书围绕c++语言的结构来组织,开始章节介绍编程的普通概念,接下来详细介绍C++hh的继承、多态、异常处理以及标准模板库(STL),同时还包含模式和uML的介绍。本书内容系统、全面,给出了大量代码示例、自测练习、编程提示和编程练习,并且提供了练习的解答。本书有利于初学者尽快掌握c++的编程知识,养成良好的编程习惯;具备相当编程经验的人,也可以从本书了解到使用c++的更有效的方法。 译者序 前言 第1章  C++基础 1 1.1  C++简介 1 1.1.1  C++语言的起源 1 1.1.2  C++与面向对象的程序设计 1 1.1.3  C++的特点 2 1.1.4  C++术语 2 1.1.5  C++程序示例 2 1.2  变量、表达式及赋值语句 4 1.2.1  标识符 4 1.2.2  变量 5 1.2.3  赋值语句 6 1.2.4  更多赋值语句 8 1.2.5  赋值兼容性 9 1.2.6  字面常量 10 1.2.7  转义序列 11 1.2.8  命名常量 12 1.2.9  算术操作符和表达式 13 1.2.10  整数和浮点数除法 14 1.2.11  类型转换 15 1.2.12  自增和自减操作符 16 1.3  控制台输入/输出 19 1.3.1  使用cout输出  19 1.3.2  输出时换行 20 1.3.3  格式化带小数点的数字 21 1.3.4  用cerr输出 22 1.3.5  用cin输入 22 1.4  程序的风格 23 1.5  库与命名空间 24 1.5.1  库与include命令 24 1.5.2  命名空间 25 第2章  流程控制 30 2.1  布尔表达式 30 2.1.1  创建布尔表达式 30 2.1.2  布尔表达式求值 31 2.1.3  优先级原则 33 2.2  分支机制 37 2.2.1  if-else语句 37 2.2.2  复合语句 38 2.2.3  省略else 40 2.2.4  嵌套语句 40 2.2.5  多分支if-else语句 41 2.2.6  switch语句 42 2.2.7  枚举类型 44 2.2.8  条件操作符 44 2.3  循环 45 2.3.1  while和do-while语句 45 2.3.2  再谈增量、减量操作符 47 2.3.3  逗号操作符 49 2.3.4  for语句 50 2.3.5  break与continue语句 55 2.3.6  嵌套循环 57 第3章  函数基础 63 3.1  预定义函数 63 3.1.1  返回值的预定义函数 63 3.1.2  预定义的void函数 66 3.1.3  随机数生成器 68 3.2  程序员定义的函数 71 3.2.1  定义返回值的函数 71 3.2.2  函数声明的替代形式 73 3.2.3  调用函数的函数 73 3.2.4  返回布尔值的函数 75 3.2.5  定义void函数 76 3.2.6  void函数中的return语句 77 3.2.7  前提条件和执行结果 78 3.2.8  main函数 79 3.2.9  递归函数 79 3.3  作用域规则 80 3.3.1  局部变量 80 3.3.2  过程抽象 82 3.3.3  全局常量与全局变量 83 3.3.4  语句块 84 3.3.5  嵌套作用域 85 3.3.6  for循环中声明的变量 85 第4章  参数与重载 92 4.1  参数 92 4.1.1  传值调用参数 92 4.1.2  引用调用参数初步 94 4.1.3  引用调用机制详解 95 4.1.4  常量引用参数 97 4.1.5  混合参数列表 99 4.2  重载与默认实参 104 4.2.1  重载简介 104 4.2.2  分辨重载的准则 107 4.2.3  默认实参 109 4.3  测试及调试函数 111 4.3.1  assert宏 111 4.3.2  占位程序和驱动程序 112 第5章  数组 119 5.1  数组简介 119 5.1.1  数组的声明和引用 119 5.1.2  内存中的数组 122 5.1.3  数组的初始化 124 5.2  函数中的数组 125 5.2.1  作为函数实参的索引变量 125 5.2.2  整个数组作为函数实参 126 5.2.3  const参数修饰词 129 5.2.4  返回一个数组的函数 130 5.3  用数组编程 134 5.4  多维数组 141 5.4.1  多维数组基础 141 5.4.2  多维数组参数 142 第6章  结构和类 155 6.1  结构 155 6.1.1  结构类型 156 6.1.2  结构作为函数参数 159 6.1.3  结构的初始化 162 6.2  类 163 6.2.1  定义类和成员函数 163 6.2.2  封装 168 6.2.3  公有和私有成员 168 6.2.4  取值和赋值函数 171 6.2.5  结构和类 174 第7章  构造函数及其他工具 179 7.1  构造函数 179 7.1.1  构造函数的定义 179 7.1.2  构造函数的显式调用 183 7.1.3  类类型成员变量 190 7.2  其他工具 193 7.2.1  const参数修饰词 193 7.2.2  内联函数 198 7.2.3  静态成员 199 7.2.4  嵌套类和局部类定义 201 7.3  向量—标准模板库预览 202 7.3.1  向量基础 202 7.3.2  效率问题 205 第8章  操作符重载、友元和引用 210 8.1 基本操作符重载 210 8.1.1  重载基础 210 8.1.2  返回常量类型 215 8.1.3  重载一元操作符 218 8.1.4  作为成员函数的操作符重载 218 8.1.5  重载函数调用符 220 8.2  友元函数和自动类型转换 221 8.2.1  构造函数的自动类型转换 221 8.2.2  友元函数 222 8.2.3  友元类 225 8.3  引用和其他操作符重载 226 8.3.1  引用 226 8.3.2  重载“《”和“》” 228 8.3.3  赋值操作符 234 8.3.4  重载自增和自减操作符 235 8.3.5  重载数组操作符[] 237 8.3.6  基于左值和右值的重载 238 第9章  字符串 243 9.1  数组类型的字符串 243 9.1.1  C字符串值和C字符串变量 243 9.1.2 cstring 库中的其他函数 247 9.1.3  C字符串的输入和输出 250 9.2  字符操作工具 252 9.2.1  字符输入/输出 252 9.2.2  成员函数get和put 252 9.2.3  成员函数putback、peek和ignore 257 9.2.4  字符操作函数 258 9.3  标准string类 261 9.3.1  标准类string简介 261 9.3.2  string类的输入/输出 263 9.3.3  使用string类进行字符串处理 267 9.3.4  string类对象和C字符串的相互转换 273 第10章  指针和动态数组 280 10.1  指针 280 10.1.1  指针变量 280 10.1.2  内存管理基础 287 10.1.3  动态变量和自动变量 289 10.1.4  指针的应用 292 10.2  动态数组 292 10.2.1  数组变量和指针变量  292 10.2.2  创建和使用动态数组 294 10.2.3  指针运算 298 10.2.4  多维动态数组 299 10.3  类、指针和动态数组 300 10.3.1  ->操作符 301 10.3.2  this指针 301 10.3.3  重载赋值操作符 302 10.3.4  析构函数 309 10.3.5  复制构造函数 310 第11章  分散编译和命名空间 318 11.1  分散编译 318 11.1.1  封装回顾  318 11.1.2  头文件和实现文件 319 11.1.3  使用#ifndef 326 11.2  命名空间 329 11.2.1 命名空间和using命令 329 11.2.2 创建一个命名空间 330 11.2.3 using声明 333 11.2.4 限定名字 334 11.2.5 未命名的命名空间 337 11.2.6  嵌套命名空间 342 第12章  流和文件I/O操作 349 12.1  I/O流 349 12.1.1  文件I/O 350 12.1.2  向文件中添加内容 353 12.1.3  字符I/O 357 12.1.4  文件末尾检查 357 12.2  流I/O的工具 361 12.2.1  文件名作为输入 361 12.2.2  使用流函数对输出格式化 361 12.2.3  操作算子 364 12.2.4  保存设定的标记 365 12.2.5  其他的输出流成员函数 365 12.3  流的层次:继承的简要介绍 370 12.4  随机文件存取 375 第13章  递归 384 13.1  递归void函数 384 13.1.1  一个递归调用的跟踪 386 13.1.2  递归的进一步认识 388 13.1.3  递归调用的栈 391 13.1.4  递归与迭代的比较 392 13.2  有返回值的递归函数 393 13.3  按递归方式思考问题 397 13.3.1  递归设计技术 397 13.3.2  二分查找 398 13.3.3  编码 400 13.3.4  检查递归的正确性 402 13.3.5  效率 402 第14章  继承 410 14.1  继承基础 410 14.1.1  派生类 410 14.1.2  派生类的构造函数 417 14.1.3  protected限定词 420 14.1.4  成员函数的重定义 422 14.1.5  重定义与重载 423 14.1.6  访问重定义函数的基类版本 424 14.1.7  不可继承的函数 425 14.2  使用继承进行编程 426 14.2.1  派生类中的赋值操作符和复制 构造函数 426 14.2.2  派生类的析构函数 426 14.2.3  保护继承和私有继承 436 14.2.4  多继承 437 第15章  多态与虚函数 442 15.1  虚函数基础 442 15.1.1  后绑定 442 15.1.2  C++中的虚函数 443 15.1.3  抽象类和纯虚函数 448 15.2  指针和虚函数  451 15.2.1  虚函数和扩展类型兼容性  451 15.2.2  向下转换和向上转换 456 15.2.3  C++如何实现虚函数 457 第16章  模板 461 16.1  函数模板 461 16.2  类模板 471 16.2.1  类模板的语法 471 16.2.2  C++中的模板类vector和 basic_string 478 16.3  模板和继承 478 第17章  链式数据结构 487 17.1  节点和链表 487 17.1.1  节点 487 17.1.2  链表 491 17.1.3  向链表头插入一个节点 492 17.1.4  向链表中插入或移除节点 495 17.1.5  搜索链表 498 17.2  链表的应用 504 17.3  迭代器 514 17.3.1  指针作为迭代器 514 17.3.2  迭代器类 515 17.4  树 520 第18章  异常处理 535 18.1  异常处理基础 535 18.1.1  异常处理的一个样例 535 18.1.2  自定义异常类 542 18.1.3  多重抛出和捕获 543 18.1.4  在函数中抛出异常 546 18.1.5  异常说明 547 18.2  异常处理的编程技术 549 18.2.1  抛出异常的时机 549 18.2.2  异常类的层次结构 552 18.2.3  测试可用内存 552 18.2.4  再次抛出异常 552 第19章  标准模板库 555 19.1  迭代器 555 19.1.1  迭代器基础 556 19.1.2  迭代器的种类 559 19.1.3  常量迭代器和可变迭代器 562 19.1.4  反向迭代器 563 19.1.5  其他几种迭代器 565 19.2  容器 566 19.2.1  连续容器  566 19.2.2  容器适配器栈和队列 570 19.2.3  关联容器集合和映射 572 19.2.4  效率 575 19.3  泛型算法 576 19.3.1  运行时间和大O记法 576 19.3.2  容器访问运行时间 580 19.3.3  不改变序列的算法 580 19.3.4  改变序列的算法 583 19.3.5  集合算法 584 19.3.6  排序算法 585 第20章  模式和UML 592 20.1  模式 592 20.1.1  适配器模式 592 20.1.2  模型-视图-控制器模式 593 20.1.3  排序模式的效率 598 20.1.4  模式形式体系 599 20.2  UML 600 20.2.1  UML的历史 600 20.2.2  UML的类图表 600 20.2.3  类的相互作用 601 附录1  C++关键字 605 附录2  操作符优先级 606 附录3  ASCII字符集 608 附录4  一些库函数 609 附录5  旧的和新的头文件 614 参考资料 615

    2012-09-11
    17
  • 深入浅出Ext JS(第2版)

     本书是《深入浅出ext js》的升级版,涵盖了最新发布的ext js 3.2新特性,并对上一版的内容进行增补,充实了示例代码,同时补充了两个功能强大的实例。特别是新增了如何优化基于ext的应用,提升加载速度,如何创建用户扩展组件以及常用的第三方扩展件等内容。大家可以看到如何在ext中使用漂亮的图表,尽情欣赏ext在性能方面实现的巨大突破,以及各种各样的绚丽组件。   本书注重理论与实践相结合,适合各层次web开发人员阅读。   第1章 ext概述 1   1.1 ext版本变迁 1   1.2 下载ext发布包 2   1.3 如何查看ext自带的api和示例 2   1.4 为什么有些示例必须放在服务器上才能看到效果 3   1.5 hello world 3   1.5.1 直接使用下载的发布包 3   1.5.2 在项目中使用ext 4   1.6 为什么页面提示“找不到图片” 5   1.7 辅助开发 5   1.7.1 调试工具firebug 5   1.7.2 开发利器spket 8   1.8 小结 12   第2章 ext框架基础 13   2.1 ext的事件和类 13   2.1.1 自定义事件 13   2.1.2 浏览器事件 15   2.1.3 ext.lib.event 15   2.1.4 ext.util.observable 16   2.1.5 ext.eventmanager 19   .2.1.6 ext.eventobject 21   2.2 ext的核心组件 22   2.2.1 ext.component 22   2.2.2 ext.boxcomponent 25   2.2.3 ext.container 25   2.2.4 ext.panel 26   2.2.5 ext.tabpanel 26   2.3 小结 29   第3章 表格控件 30   3.1 表格的特性简介 30   3.2 制作一个简单的表格 31   3.3 表格常用功能详解 33   3.3.1 部分属性功能 34   3.3.2 自主决定每列的宽度 35   3.3.3 让表格支持按列排序 37   3.3.4 解决中文排序 38   3.3.5 显示日期类型数据 40   3.4 表格渲染 41   3.5 给表格的行和列设置颜色 45   3.6 自动显示行号和复选框 46   3.6.1 自动显示行号 46   3.6.2 复选框 48   3.7 选择模型 49   3.8 表格视图——ext.grid.gridview 50   3.9 表格分页 52   3.9.1 为表格添加分页工具条 52   3.9.2 通过后台脚本获得分页数据 53   3.9.3 分页工具条显示在表格的顶部 57   3.9.4 让ext支持前台分页 57   3.10 后台排序 58   3.11 可编辑表格控件——editorgrid 60   3.11.1 制作一个简单的editorgrid 60   3.11.2 添加一行数据 62   3.11.3 保存修改结果 65   3.11.4 验证editgrid中的数据 68   3.11.5 限制输入数据的类型 72   3.12 属性表格控件——propertygrid 76   3.12.1 propertygrid 77   3.12.2 只能看不能动的propertygrid 78   3.12.3 强制对name列排序 78   3.12.4 根据name获得value 79   3.12.5 自定义编辑器 79   3.13 分组表格控件——group 79   3.13.1 分组表格简介 80   3.13.2 分组表格视图ext.grid.groupingview 81   3.14 可拖放的表格 83   3.14.1 拖放改变表格的大小 83   3.14.2 在同一个表格里拖放 85   3.14.3 表格之间的拖放 87   3.14.4 表格与树之间的拖放 90   3.15 表格与右键菜单 91   3.16 小结 93   第4章 表单与输入控件 94   4.1 制作表单 94   4.2 formpanel和basicform详解 95   4.3 ext支持的控件 95   4.3.1 控件继承图 95   4.3.2 表单控件 96   4.3.3 基本输入控件ext.form.field 99   4.3.4 文本输入控件ext.form.textfield 100   4.3.5 多行文本输入控件ext.form.textarea 101   4.3.6 日期输入控件ext.form.datefield 101   4.3.7 时间输入控件ext.form.timefield 102   4.3.8 在线编辑器ext.form.htmleditor 102   4.3.9 隐藏域ext.form.hidden 103   4.3.10 下拉输入框ext.form.triggerfield 103   4.4 使用表单提交数据 105   4.4.1 ext默认的提交形式 105   4.4.2 使用html原始的提交形式 107   4.4.3 单纯ajax 107   4.5 数据校验 108   4.5.1 输入不能为空 108   4.5.2 最大长度和最小长度 109   4.5.3 借助vtype 109   4.5.4 自定义校验规则 110   4.5.5 算不上校验的numberfield 110   4.5.6 使用后台返回的校验信息 111   4.6 表单布局 112   4.6.1 默认的平铺布局 113   4.6.2 平行分列布局 113   4.6.3 在布局中使用fieldset 116   4.6.4 在fieldset中使用布局 118   4.6.5 自定义布局 119   4.7 combobox详解 121   4.7.1 combobox简介 122   4.7.2 将select转换成combobox 123   4.7.3 combobox结构详解 123   4.7.4 combobox读取远程数据 125   4.7.5 combobox的高级配置 126   4.7.6 监听用户选择的数据 128   4.7.7 使用本地数据实现省、市、县级联 129   4.7.8 使用后台数据实现省、市、县级联 132   4.8 复选框和单选框 135   4.8.1 复选框 135   4.8.2 单选框 136   4.9 文件上传 137   4.10 自动把数据填充到表单中 138   4.11 小结 140   第5章 树形结构 141   5.1 treepanel的基本使用 141   5.1.1 创建一棵树 141   5.1.2 为树生枝展叶 142   5.1.3 树形的配置 143   5.1.4 使用treeloader获得数据 144   5.1.5 读取本地json数据 145   5.1.6 与struts 2进行集成 146   5.1.7 使用jsp提供后台数据 147   5.2 树的事件 150   5.3 右键菜单 151   5.4 修改节点的默认图标 153   5.5 从节点弹出对话框 153   5.6 节点提示信息 154   5.7 为节点设置超链接 155   5.8 直接修改树节点名称 156   5.9 树形的拖放 157   5.9.1 节点拖放的3种形式 158   5.9.2 叶子不能append 158   5.9.3 判断拖放的目标 159   5.9.4 树之间的拖放 161   5.10 树形过滤器treefilter 161   5.11 利用treesorter对树进行排序 164   5.12 树形节点视图——ext.tree.treenodeui 164   5.13 表格与树形的结合——ext.ux.tree.columntree 166   5.14 小结 168   第6章 拖放 169   6.1 拖放简介 169   6.2 拖放的简单应用 169   6.3 拖放组件体系 170   6.4 拖放的事件 172   6.5 高级拖放 174   6.5.1 基础 174   6.5.2 控制柄 174   6.5.3 总在最上面 175   6.5.4 代理 177   6.5.5 分组 178   6.5.6 网格 182   6.5.7 拖动圆形 183   6.5.8 拖动范围 185   6.6 小结 186   第7章 弹出窗口 187   7.1 ext.messagebox 187   7.1.1 ext.messagebox.alert() 187   7.1.2 ext.messagebox.confirm() 188   7.1.3 ext.messagebox.prompt() 188   7.2 对话框的更多配置 189   7.2.1 可以输入多行的输入框 189   7.2.2 自定义对话框的按钮 189   7.2.3 进度条 190   7.2.4 动画效果 191   7.3 ext.window的常用属性 191   7.3.1 创建窗口 192   7.3.2 窗口的最大化和最小化 193   7.3.3 窗口的隐藏与销毁 194   7.3.4 防止窗口超出浏览器 195   7.3.5 设置窗口中的按钮 196   7.3.6 窗口的其他配置选项 197   7.4 窗口分组 198   7.5 向窗口中放入各种控件 200   7.5.1 在窗口中加入表格 200   7.5.2 在窗口中加入表单 201   7.5.3 复杂布局 202   7.6 小结 204   第8章 布局 205   8.1 布局的用途 205   8.2 最简单的布局——fitlayout 207   8.3 常用的边框布局——borderlayout 209   8.3.1 设置子区域的大小 210   8.3.2 使用split并限制它的范围 212   8.3.3 子区域的展开和折叠 213   8.4 制作伸缩菜单的布局——accordion 216   8.5 实现操作向导的布局——cardlayout 217   8.6 控制位置和大小的布局——anchorlayout和absolutelayout 219   8.7 表单专用的布局formlayout 223   8.8 分列式的布局columnlayout 225   8.9 表格状的布局tablelayout 227   8.10 与布局相关的其他知识 228   8.10.1 超类ext.container的公共配置与xtype的概念 228   8.10.2 layout的超类ext.layout. containerlayout 229   8.10.3 不指定任何布局时会发生的情况 230   8.10.4 使用viewport对整个页面进行布局 231   8.10.5 使用嵌套实现复杂布局 232   8.11 boxlayout 236   8.12 小结 237   第9章 工具条和菜单 238   9.1 简单菜单 238   9.2 向菜单中添加分隔线 239   9.3 多级菜单 240   9.4 高级菜单 242   9.4.1 多选菜单和单选菜单 242   9.4.2 日期菜单 244   9.4.3 颜色菜单 244   9.4.4 在菜单中添加其他组件 245   9.4.5 使用ext.menu.menumgr统一管理菜单 246   9.5 工具条组件详解 248   9.5.1 ext.toolbar.button 248   9.5.2 ext.toolbar.textmenu 248   9.5.3 ext.toolbar.spacer 249   9.5.4 ext.toolbar.separator 250   9.5.5 ext.toolbar.fill 250   9.5.6 ext.splitbutton 251   9.5.7 为工具条添加html标签 252   9.5.8 为工具条添加输入控件 253   9.6 分页工具条ext.pagingtoolbar 253   9.6.1 ext.pagingtoolbar的基本用法 253   9.6.2 向ext.pagingtoolbar添加按钮组件 254   9.7 右键弹出菜单 255   9.8 小结 257   第10章 数据存储与传输 258   10.1 ext.data命名空间下常用组件简介 258   10.2 ext.data.connection 258   10.3 ext.data.record 260   10.4 ext.data.store 261   10.4.1 基本应用 261   10.4.2 对数据进行排序 262   10.4.3 从store中获取数据 263   10.4.4 更新store中的数据 264   10.4.5 加载及显示数据 265   10.4.6 其他功能 266   10.5 常用proxy 268   10.5.1 memoryproxy 268   10.5.2 httpproxy 268   10.5.3 scripttagproxy 268   10.6 常用reader 269   10.6.1 arrayreader 269   10.6.2 jsonreader 270   10.6.3 xmlreader 271   10.7 高级store 273   10.8 ext中的ajax 274   10.8.1 最容易看到的ext.ajax 274   10.8.2 ext.lib.ajax是更底层的封装 275   10.9 关于scope和createdelegate() 276   10.10 dwr与ext整合 277   10.10.1 在ext中直接使用dwr 277   10.10.2 dwrproxy 279   10.10.3 dwrtreeloader 280   10.10.4 dwrproxy和combobox 281   10.11 localxhr支持本地使用ajax 282   10.12 小结 284   第11章 实用工具 285   11.1 ext提供的常用函数 285   11.1.1 onready函数 286   11.1.2 get函数 286   11.1.3 query函数和select函数 289   11.1.4 encode函数和decode函数 292   11.1.5 extend函数 294   11.1.6 apply函数和applyif函数 295   11.1.7 namespace函数 295   11.1.8 ext.isempty函数 296   11.1.9 ext.each函数 297   11.1.10 ext.domquery 298   11.2 使用domhelper和template动态生成html 301   11.2.1 使用domhelper生成小片段 301   11.2.2 ext.domhelper.applystyles函数 304   11.2.3 template(模板) 304   11.2.4 ext.domhelper.createtemplate函数 307   11.2.5 复杂模板xtemplate 308   11.3 用ext.utils.css切换主题 310   11.4 悬停提示 311   11.4.1 初始化 311   11.4.2 注册提示 312   11.4.3 标签提示 312   11.4.4 全局配置 312   11.4.5 个体配置 313   11.5 使用ext.state保存状态 314   11.6 使用fx实现的动画效果 317   11.7 局部更新网页内容 319   11.8 使用ext.util.format对数据进行格式化 320   11.9 使用ext.util.css管理css样式 321   11.10 使用ext.util.clickrepeater处理点击事件 322   11.11 使用ext.util.delayedtask延时执行函数 323   11.12 使用ext.util.taskrunner执行循环任务 324   11.13 混合型集合ext.util.mixedcollection 325   11.14 使用ext.util.textmetrices获得文本所占的高度和宽度 329   11.15 使用ext.keynav处理导航按键 330   11.16 使用ext.keymap为对象绑定按键功能 331   11.17 扩展 333   11.17.1 扩展date 333   11.17.2 扩展string 335   11.17.3 扩展function 336   11.17.4 扩展number 338   11.17.5 扩展array 338   11.18 门户组件ext.ux.portal 338   11.19 桌面组件ext.desktop 341   11.20 小结 345   第12章 一个完整的ext应用 346   12.1 确定整体布局 347   12.2 使用html和css设置静态信息 348   12.3 对学生信息进行数据建模 349   12.4 在页面中显示学生信息列表 353   12.5 添加表单编辑学生信息 358   12.6 为表单添加提交事件 361   12.7 清空表单信息 364   12.8 删除指定的学生信息 364   12.9 在表格和表单之间进行数据交互 365   12.10 提升加载速度 366   12.10.1 对javascript文件进行压缩混淆 367   12.10.2 使用客户端缓存 367   12.10.3 使用gzip压缩 368   12.11 小结 370   第13章 复杂实例 371   13.1 vip客户统计系统 371   13.2 tracker任务跟踪系统 380   13.3 小结 387   第14章 ext 3.x中的新特性 388   14.1 介绍ext core 388   14.1.1 adapter 388   14.1.2 core 389   14.1.3 data 389   14.1.4 util 389   14.1.5 扩展实例 390   14.2 介绍ext direct 392   14.2.1 ext direct 392   14.2.2 洞悉ext direct的原理 394   14.2.3 使用directjngine支持ext direct 396   14.3 介绍ext 3.0中新增的组件 398   14.3.1 行编辑器 399   14.3.2 进度条分页组件 399   14.3.3 缓冲式表格视图 400   14.3.4 标签面板的滚动菜单 401   14.3.5 处理工具条溢出 401   14.3.6 列表视图 402   14.3.7 工具条中的分组按钮 403   14.3.8 高级按钮 403   14.3.9 竖直分组的标签面板 404   14.4 在ext 3.0中使用flash报表 405   14.4.1 柱状图 405   14.4.2 横向柱状图 406   14.4.3 折线图 407   14.4.4 饼状图 408   14.4.5 柱状栈图 409   14.4.6 横向柱状栈图 410   14.4.7 混合图 411   14.5 ext 3.1带来的新特性 412   14.5.1 解决内存泄露 413   14.5.2 核心组件优化 414   14.5.3 分组表头 414   14.5.4 锁定列 415   14.5.5 树形表格 416   14.5.6 竖直布局 418   14.5.7 高级表格查询 419   14.5.8 自定义编辑器 421   14.6 ext 3.2带来的新特性 422   14.6.1 多重排序 423   14.6.2 为dataview添加动画变换效果 423   14.6.3 组合表单控件 424   14.6.4 滑动条表单控件 424   14.6.5 为滑动条指定多个滑块 425   14.6.6 更多工具条插件 426   14.6.7 新主题accessibility 428   14.7 小结 428   第15章 用户扩展与插件 429   15.1 介绍用户扩展 429   15.2 编写用户扩展所需的基础知识 432   15.2.1 继承模型 432   15.2.2 了解component的生命周期 436   15.3 编写自定义用户扩展 437   15.4 介绍ext的插件体系 438   15.5 常用扩展组件(一)uploaddialog 441   15.6 常用扩展组件(二)managediframe 443   15.7 小结 446   附录a ext常见问题 447   附录b ext对air的支持 454   附录c ext的版本变迁 462

    2012-04-07
    10
关注 私信
上传资源赚积分or赚钱