《Unveil Spring》从07年10月开始写作到现在近乎两年了,现在图灵出版社还在对整本书进行编辑,所以,没办法,先把整本书的目录贴一下吧,权作“望梅止渴”,何如?
这个目录是最原始的目录结构,但正式出版之后,可能会有所变动,因为原来的目录层次太深,出版界的一些规矩啥的,所以,现在将原来的内容打散到了33章中,分做几个大的部分,尽量保持了原来的层次表意。
Table of Contents
- 序言
1. Spring框架的由来(What's Spring?)
- 1.1. Spring之崛起(Why Spring Arise?)
1.2. Spring框架概述(Spring Overview)
1.3. Spring大观园
2. Spring的IoC容器(The IoC Container Of Spring)
- 2.1. IoC基本概念(IoC Concept)
- 2.1.1. 我们的理念是: 让别人为你服务!
2.1.2. 手语,呼喊,还是心有灵犀?(IoC的注入方式)
- 2.1.2.1. 构造方法注入方式(Constructor Injection)
2.1.2.2. Setter方法注入方式(Setters Injection)
2.1.2.3. 接口注入方式(Interface Injection)
2.1.2.4. 注入方式的比较
2.1.3. IoC的附加值(What can IoC bring to us?)
2.2. 掌管大局的“IoC Service Provider
”
- 2.2.1. IoC Service Provider的职责
2.2.2. 运筹帷幄的秘密-IoC Service Provider如何管理对象间的依赖关系
- 2.2.2.1. 直接编码方式(register via programming)
2.2.2.2. 配置文件方式(register via configuration files)
2.2.2.3. 元数据方式(register via Annotation or Meta data)
2.3. Spring的IoC容器
- 2.3.1. BeanFactory
- 2.3.1.1. 拥有BeanFactory之后的生活
2.3.1.2. BeanFactory的对象注册与依赖绑定方式
- 2.3.1.2.1. 直接编码方式
2.3.1.2.2. 外部配置文件方式
- 2.3.1.2.2.1. Properties配置格式的加载
2.3.1.2.2.2. XML配置格式的加载
2.3.1.2.3. Annotation方式
2.3.1.3. BeanFactory的XML之旅
- 2.3.1.3.1. beans和bean
- 2.3.1.3.1.1. <beans>之唯我独尊
2.3.1.3.1.2. description,import和alias
2.3.1.3.2. 孤孤单单一个人(single bean)
2.3.1.3.3. Help Me, Help You(how to express dependency)
- 2.3.1.3.3.1. 构造方法注入的XML之道
2.3.1.3.3.2. setter方法注入的XML之道
2.3.1.3.3.3. property和constructor-arg之内
2.3.1.3.3.4. depends-on
2.3.1.3.3.5. autowire
2.3.1.3.3.6. dependency-check
2.3.1.3.3.7. lazy-init
2.3.1.3.4. 继承?我也会!
2.3.1.3.5. bean的scope
- 2.3.1.3.5.1. singleton scope
2.3.1.3.5.2. prototype scope
2.3.1.3.5.3. request,session和global session
2.3.1.3.5.4. 自定义scope类型
2.3.1.3.6. Factory Method与FactoryBean
- 2.3.1.3.6.1. 静态工厂方法(Static Factory Method)
2.3.1.3.6.2. 非静态工厂方法(Instance Factory Method)
2.3.1.3.6.3. FactoryBean
2.3.1.3.7. 偷梁换柱之术
- 2.3.1.3.7.1. 方法注入(Method Injection)
2.3.1.3.7.2.
殊途同归
2.3.1.3.7.3. 方法替换(Method Replacement)
2.3.1.4. 容器背后的秘密(The Magic Behind)
- 2.3.1.4.1. “战略性观望
”
2.3.1.4.2. 插手容器的启动(BeanFactoryPostProcessor)
- 2.3.1.4.2.1. PropertyPlaceholderConfigurer
2.3.1.4.2.2. PropertyOverrideConfigurer
2.3.1.4.2.3. CustomEditorConfigurer
2.3.1.4.3. 了解Bean的一生(Bean's lifecycle)
- 2.3.1.4.3.1. Bean的实例化与BeanWrapper
2.3.1.4.3.2. 各色的Aware接口
2.3.1.4.3.3. BeanPostProcessor
2.3.1.4.3.4. InitializingBean和init-method
2.3.1.4.3.5. DisposableBean与destroy-method
2.3.2. ApplicationContext
- 2.3.2.1. 统一资源加载策略
- 2.3.2.1.1. Spring中的Resource
2.3.2.1.2. ResourceLoader,“更广义的URL
”
- 2.3.2.1.2.1. 可用的ResourceLoaders(ResourceLoaders Available)
2.3.2.1.2.2. ResourcePatternResolver - 批量查找的ResourceLoader
2.3.2.1.2.3. 回顾与展望
2.3.2.1.3. ApplicationContext与ResourceLoader
- 2.3.2.1.3.1. 扮演ResourceLoader的角色(Act As a ResourceLoader)
2.3.2.1.3.2. ResourceLoader类型的注入
2.3.2.1.3.3. Resource类型的注入
2.3.2.1.3.4. 特定情况下ApplicationContext的Resource加载行为
2.3.2.2. 国际化信息支持(I18N MessageSource)
- 2.3.2.2.1. JavaSE提供的国际化支持
2.3.2.2.2. MessageSource与ApplicationContext
- 2.3.2.2.2.1. 可用的MessageSource实现(Available MessageSources)
2.3.2.2.2.2. MessageSourceAware和MessageSource的注入
2.3.2.3. 容器内部事件发布(Event publication in Spring container)
- 2.3.2.3.1. 自定义事件发布(Custom Event publication)
2.3.2.3.2. Spring的容器内事件发布类结构分析
2.3.2.3.3. Spring容器内事件发布的应用
2.3.2.4. 多配置模块加载的简化
2.4. Spring IoC容器之扩展篇
- 2.4.1. Spring2.5之“基于Annotation的依赖注入
”(Annotation-based Dependency injection in spring2.5)
- 2.4.1.1. Annotation版的自动绑定(@Autowired)
- 2.4.1.1.1. 从自动绑定(autowire)到@Autowired
2.4.1.1.2. @Qualifier的陪伴
2.4.1.2. 换一种心情(JSR250)
2.4.1.3. 将革命进行的更彻底一些(classpath-scanning)
2.4.1.4. 结束语
3. Spring AOP framework
- 3.1. 一起来看AOP!
- 3.1.1. AOP的尴尬
3.1.2. AOP走向现实
3.1.3. Java平台上的AOP实现机制(AOP Implementation Mechanism on Java Platform)
- 3.1.3.1. 动态代理(Dynamic Proxy)
3.1.3.2. 动态字节码增强(dynamic byte-code enhancement)
3.1.3.3. Java代码生成(Java Code Generation)
3.1.3.4. 自定义类加载器(Custom Classloader)
3.1.3.5. AO Language扩展(AOL extension)
3.1.4. AOP国家之公民(Basic Concepts of AOP )
- 3.1.4.1. Joinpoint
3.1.4.2. Pointcut
- 3.1.4.2.1. Pointcut的表述方式
3.1.4.2.2. Pointcut运算
3.1.4.3. Advice
- 3.1.4.3.1. Before Advice
3.1.4.3.2. After Advice
3.1.4.3.3. Around Advice
3.1.4.3.4. Introduction
3.1.4.4. Aspect
3.1.4.5. Weaving and Weaver
3.1.4.6. Target
3.2. Spring AOP 正题
- 3.2.1. 概述
3.2.2. SpringAOP的实现机制
- 3.2.2.1. 设计模式之代理模式(Proxy Pattern)
3.2.2.2. 动态代理(Dynamic Proxy)
3.2.2.3. 动态字节码生成(byte code generation with cglib)
3.2.3. SpringAOP一世
- 3.2.3.1. Joinpoint in spring aop
3.2.3.2. Pointcuts in spring aop
- 3.2.3.2.1. 常见的Pointcuts(Common Pointcuts implementations)
3.2.3.2.2. 扩展Pointcut(Customize Pointcut)
- 3.2.3.2.2.1. 自定义StaticMethodMatcherPointcut
3.2.3.2.2.2. 自定义DynamicMethodMatcherPointcut
3.2.3.2.3. IoC容器中的Pointcut
3.2.3.3. Advices in spring aop
- 3.2.3.3.1. per-class 类型的Advice
- 3.2.3.3.1.1. BeforeAdvice
3.2.3.3.1.2. ThrowsAdvice
3.2.3.3.1.3. AfterReturningAdvice
3.2.3.3.1.4. AroundAdvice
3.2.3.3.2. per-instance类型的Advice
- 3.2.3.3.2.1. Introduction
3.2.3.4. Aspect(Advisor) in spring aop
- 3.2.3.4.1. PointcutAdvisor家族
- 3.2.3.4.1.1. DefaultPointcutAdvisor
3.2.3.4.1.2. NameMatchMethodPointcutAdvisor
3.2.3.4.1.3. RegexpMethodPointcutAdvisor
3.2.3.4.1.4. DefaultBeanFactoryPointcutAdvisor
3.2.3.4.2. IntroductionAdvisor分支
3.2.3.4.3. Ordered的作用
3.2.3.5. SpringAOP的织入(Weaving in SpringAOP)
- 3.2.3.5.1. 如何与ProxyFactory打交道(How to use ProxyFactory)
- 3.2.3.5.1.1. 基于接口的代理
3.2.3.5.1.2. 基于类的代理
3.2.3.5.1.3. Introduction的织入
3.2.3.5.2. 看清ProxyFactory的本质(The True Color of ProxyFactory)
3.2.3.5.3. 容器中的Weaver-ProxyFactoryBean
- 3.2.3.5.3.1. ProxyFactoryBean的本质
3.2.3.5.3.2. ProxyFactoryBean的使用
3.2.3.5.4. 加快织入的自动化进程(accelerate weaving process with autoproxy)
- 3.2.3.5.4.1. AutoProxy得以实现的原理
3.2.3.5.4.2. 可用的AutoProxyCreator
3.2.3.5.4.3. 扩展AutoProxyCreator
3.2.3.6. TargetSource
- 3.2.3.6.1. 可用的TargetSource实现类
- 3.2.3.6.1.1. SingletonTargetSource
3.2.3.6.1.2. PrototypeTargetSource
3.2.3.6.1.3. HotSwappableTargetSource
3.2.3.6.1.4. CommonsPoolTargetSource
3.2.3.6.1.5. ThreadLocalTargetSource
3.2.3.6.2. 自定义TargetSource
3.2.4. SpringAOP二世
- 3.2.4.1. @AspectJ形式的SpringAOP
- 3.2.4.1.1. @AspectJ形式AOP使用之先睹为快
- 3.2.4.1.1.1. 编程方式织入
3.2.4.1.1.2. 通过autoproxy织入
3.2.4.1.2. @AspectJ形式的Pointcut
- 3.2.4.1.2.1. @AspectJ形式Pointcut的声明方式
3.2.4.1.2.2. @AspectJ形式Pointcut表达式的标志符
3.2.4.1.2.3. @AspectJ形式的Pointcut在Spring aop中的真实面目
3.2.4.1.3. @AspectJ形式的Advice
- 3.2.4.1.3.1. Before Advice
3.2.4.1.3.2. After Throwing Advice
3.2.4.1.3.3. After Returning Advice
3.2.4.1.3.4. After(finally) Advice
3.2.4.1.3.5. Around Advice
3.2.4.1.3.6. Introduction
3.2.4.1.4. 有关@AspectJ中的Aspect更多话题
- 3.2.4.1.4.1. Advice的执行顺序
3.2.4.1.4.2. Aspect的实例化模式
3.2.4.2. 基于Schema的AOP
- 3.2.4.2.1. 基于schema的aop配置概览
3.2.4.2.2. 向基于schema的aop迁移
- 3.2.4.2.2.1. 单纯的迁移
3.2.4.2.2.2. 深入挖掘<aop:advisor>
3.2.4.2.3. @AspectJ到基于schema的aop迁移
- 3.2.4.2.3.1. 基于schema的Aspect声明
3.2.4.2.3.2. 基于schema的Pointcut声明
3.2.4.2.3.3. 基于schema的Advice声明
3.2.4.2.3.4. 其他需要关注的地方
3.2.5. 殊途同归(谈SpringAOP使用方式的选择)
3.3. AOP应用案例(AOP Use cases)
- 3.3.1. 异常处理(Exception Handling)
- 3.3.1.1. 异常处理简单攻略(Exception Handling Introduction)
3.3.1.2. fault barrier
3.3.2. 安全检查(security checking)
3.3.3. 缓存(caching)
3.4. SpringAOP扩展篇
- 3.4.1. 有关暴露当前调用的代理对象的探讨
- 3.4.1.1. 问题的现象
3.4.1.2. 原因的分析
3.4.1.3. 解决方案
4. 使用Spring进行数据访问(Data Access With Spring)
- 4.1. 统一的数据访问异常层次体系(Consistent Exception Hierarchy In Spring)
- 4.1.1. DAO模式的背景(Background of the DAO Pattern)
4.1.2. 梦想照进现实(The reality of implementing the DAO pattern)
4.1.3. 发现问题,解决问题(How to get through?)
4.1.4. 不重新发明轮子(Don't Reinvent The Wheels.)
4.2. JDBC API的最佳实践(JDBC made easy with spring)
- 4.2.1. 基于Template的Jdbc使用方式
- 4.2.1.1. JDBC的尴尬
4.2.1.2. JdbcTemplate的诞生
- 4.2.1.2.1. 模板方法模式简介(Template Method Pattern Introduction)
4.2.1.2.2. JdbcTemplate的演化
4.2.1.2.3. 使用DataSourceUtils进行Connection的管理
4.2.1.2.4. 使用NativeJdbcExtractor来获得“真相
”
4.2.1.2.5. 控制JdbcTemplate的行为
4.2.1.2.6. SQLException到DataAccessException体系的转译
- 4.2.1.2.6.1. 扩展SQLErrorCodeSQLExceptionTranslator
4.2.1.2.6.2. 提供sql-error-codes.xml自定义配置
4.2.1.3. JdbcTemplate和他的兄弟们
- 4.2.1.3.1. 使用JdbcTemplate进行数据访问
- 4.2.1.3.1.1. 初始化JdbcTemplate
4.2.1.3.1.2. 基于JdbcTemplate的数据访问
4.2.1.3.1.3. 递增主键生成策略的抽象
4.2.1.3.1.4. Spring中的Lob类型处理
4.2.1.3.2. NamedParameterJdbcTemplate
- 4.2.1.3.2.1. NamedParameterJdbcTemplate的功能
4.2.1.3.2.2. NamedParameterJdbcTemplate的实现原理
4.2.1.3.3. SimpleJdbcTemplate
4.2.1.4. Spring中的DataSource
- 4.2.1.4.1. DataSource的种类
4.2.1.4.2. DataSource的访问方式
- 4.2.1.4.2.1. 本地DataSource访问
4.2.1.4.2.2. 远程DataSource访问
4.2.1.4.3. 自定义DataSource实现
- 4.2.1.4.3.1. 新建DataSource实现
4.2.1.4.3.2. 为现有DataSource添加新行为
4.2.1.5. JdbcDaoSupport
4.2.2. 基于操作对象(Operation Object)的Jdbc使用方式
- 4.2.2.1. 基于操作对象的查询
- 4.2.2.1.1. MappingSqlQueryWithParameters
4.2.2.1.2. MappingSqlQuery
4.2.2.1.3. SqlFunction
4.2.2.1.4. UpdatableSqlQuery
4.2.2.1.5. 基于操作对象的LOB查询
4.2.2.2. 基于操作对象的更新
- 4.2.2.2.1. SqlUpdate
4.2.2.2.2. BatchSqlUpdate
4.2.2.2.3. 基于操作对象的LOB更新
4.2.2.3. 基于操作对象的存储过程调用
- 4.2.2.3.1. StoredProcedure
4.3. Spring对各种ORM的集成(ORM Integration In Spring)
- 4.3.1. Spring对Hibernate的集成
- 4.3.1.1. 旧日“冬眠
”时光
4.3.1.2. “春天
”里的“冬眠
”(Hibernate with Spring Framework)
- 4.3.1.2.1. HibernateTemplate的登场
- 4.3.1.2.1.1. 基于HibernateTemplate的Session资源管理
4.3.1.2.1.2. 特定的Hibernate数据访问异常转译
4.3.1.2.1.3. 基本数据访问操作
4.3.1.2.2. Spring中的SessionFactory的配置及获取
- 4.3.1.2.2.1. LocalSessionFactoryBean
4.3.1.2.2.2. AnnotationSessionFactoryBean
4.3.1.2.2.3. 通过JNDI获取SessionFactory
4.3.1.2.3. HibernateDaoSupport
4.3.2. Spring对iBatis的集成
- 4.3.2.1. iBatis实践之前生篇
4.3.2.2. iBatis实践之今世篇
- 4.3.2.2.1. SqlMapClientTemplate的实现
4.3.2.2.2. SqlMapClientTemplate的使用
- 4.3.2.2.2.1. SqlMapClientTemplate的构建
4.3.2.2.2.2. 使用SqlMapClientCallback进行数据访问
4.3.2.2.2.3. 基于SqlMapClientTemplate基本数据访问操作
4.3.2.2.3. SqlMapClientDaoSupport
4.3.3. Spring中对其他ORM方案的集成概略
- 4.3.3.1.
spring对JDO的集成
- 4.3.3.1.1. Spring中的JDO资源管理
4.3.3.1.2. Spring的JDO异常转译
4.3.3.1.3. JdoDaoSupport
4.3.3.2. spring对TopLink的集成
- 4.3.3.2.1. Spring中的toplink资源管理
4.3.3.2.2. toplink数据访问异常到spring异常体系的转译
4.3.3.2.3. TopLinkDaoSupport
4.3.3.3. spring对JPA的集成
- 4.3.3.3.1. Spring中JPA的资源管理
4.3.3.3.2. Spring中JPA的异常转译
4.3.3.3.3. JpaDaoSupport
4.4. Spring数据访问扩展篇
- 4.4.1. 活用模板方法模式及Callback
- 4.4.1.1. FTPClientTemplate
4.4.1.2. HttpClientTemplate
4.4.2. 数据访问中的多数据源(Multi-DataSource in Data Access)
- 4.4.2.1. “主权独立
”的多数据源
4.4.2.2. “合纵连横
”的多数据源
4.4.2.3. 结束语
5. Spring中的事务控制(Transacion Management with Spring)
- 5.1. 有关事务(Transaction)的楔子
- 5.1.1. 认识事务本身
5.1.2. 初识事务家族成员
5.2. 群雄逐鹿下的Java事务管理
- 5.2.1. Java平台的局部事务支持
5.2.2. Java平台的分布式事务支持
- 5.2.2.1. 基于JTA的分布式事务管理
- 5.2.2.1.1. JTA编程事务管理
5.2.2.1.2. JTA声明性事务管理
5.2.2.2. 基于JCA的分布式事务管理
5.2.3. 继续前行之前的反思
5.3. 一统河山后的Spring事务管理
- 5.3.1. spring事务王国的架构
- 5.3.1.1. 统一中原的过程
5.3.1.2. 和平年代
- 5.3.1.2.1. TransactionDefinition
- 5.3.1.2.1.1. TransactionDefinition简介
5.3.1.2.1.2. TransactionDefinition相关实现
5.3.1.2.2. TransactionStatus
5.3.1.2.3. PlatformTransactionManager
- 5.3.1.2.3.1. PlatformTransactionManager实现类概览
5.3.1.2.3.2. 窥一斑而知全豹
5.3.2. 使用spring进行事务管理
- 5.3.2.1. 编程式事务管理
- 5.3.2.1.1. 直接使用PlatformTransactionManager进行编程式事务管理
5.3.2.1.2. 使用TransactionTemplate进行编程式事务管理
5.3.2.1.3. 编程创建基于Savepoint的嵌套事务
5.3.2.2. 声明式事务管理
- 5.3.2.2.1. 引子
5.3.2.2.2. XML元数据驱动的声明式事务
- 5.3.2.2.2.1. 使用ProxyFactory(ProxyFactoryBean)+TransactionInterceptor
5.3.2.2.2.2. 使用“一站式
”的TransactionProxyFactoryBean
5.3.2.2.2.3. 使用BeanNameAutoProxyCreator
5.3.2.2.2.4. 使用Spring2.x的声明事务配置方式
5.3.2.2.3. Annotation元数据驱动的声明式事务
5.4. spring事务管理之扩展篇
- 5.4.1. 理解并活用ThreadLocal
- 5.4.1.1.
理解ThreadLocal的存在背景
5.4.1.2. 理解ThreadLocal的实现
5.4.1.3. ThreadLocal的应用场景
5.4.1.4. 使用ThreadLocal管理多数据源切换的条件
5.4.2. 谈Strategy模式在开发过程中的应用
5.4.3. Spring与JTA背后的奥秘(Magic behind Spring and JTA)
6. Spring的Web MVC框架(Spring Web MVC Framework)
- 6.1. 迈向SpringMVC的旅程
- 6.1.1. Servlet独行天下的时代
6.1.2. 繁盛一时的JSP时代
6.1.3. Servlet与JSP的联盟
6.1.4. 数英雄人物,还看今朝
6.2. SpringMVC正题
- 6.2.1. 鸟瞰SpringMVC
6.2.2. 实践出真知
- 6.2.2.1. SpringMVC应用的物理结构
- 6.2.2.1.1. ContextLoaderListener与/WEB-INF/applicationContext.xml
6.2.2.1.2. DispatcherServlet与XXX-servlet.xml
6.2.2.2. 按部就班的开始工作
6.2.3. 近距离接触SpringMVC主要角色
- 6.2.3.1. 忙碌的协调人HandlerMapping
- 6.2.3.1.1. 可用的HandlerMapping(Available HandlerMapping)
6.2.3.1.2. HandlerMapping执行序列(Chaining Of HandlerMapping)
6.2.3.2. 我们的亲密伙伴Controller
- 6.2.3.2.1. AbstractController
6.2.3.2.2. MultiActionController
- 6.2.3.2.2.1. MultiActionController的助理MethodNameResolver
6.2.3.2.2.2. MultiActionController应用演示
6.2.3.2.3. SimpleFormController
- 6.2.3.2.3.1. 了解数据绑定
6.2.3.2.3.2. Spring框架数据验证简介
6.2.3.2.3.3. 深入表单(form)处理流程
6.2.3.2.3.4. SimpleFormController应用演示
6.2.3.2.4. AbstractWizardFormController
- 6.2.3.2.4.1. AbstractWizardFormController浅析
6.2.3.2.4.2. AbstractWizardFormController实例
6.2.3.2.5. 其他可用的Controller实现(Other Available Controllers)
6.2.3.3. ModelAndView
- 6.2.3.3.1. ModelAndView中的视图信息
6.2.3.3.2. ModelAndView中的模型数据
6.2.3.4. 视图定位器ViewResolver
- 6.2.3.4.1. 可用的ViewResolver实现类(Available ViewResolvers)
6.2.3.4.2. ViewResolver查找序列(Chaining Of ViewResolver)
6.2.3.5. 各司其职的View
- 6.2.3.5.1. View实现原理回顾
6.2.3.5.2. 可用的View实现类(Available Views)
- 6.2.3.5.2.1. 使用JSP技术的View实现
6.2.3.5.2.2. 使用通用模板技术的View实现
6.2.3.5.2.3. 面向二进制文档格式的View实现
6.2.3.5.2.4. 面向JsperReport的View实现
6.2.3.5.2.5. 使用XSLT技术的View实现
6.2.3.5.2.6. RedirectView和逻辑视图名前缀
6.2.3.5.3. 自定义View实现(Custom View)
6.2.4. 细化后的场景
- 6.2.4.1. 文件上传与MultipartResolver
- 6.2.4.1.1. 使用MultipartResolver进行文件上传的简单分析(Analysis of file uploading with MultipartResolver)
6.2.4.1.2. 文件上传实践(File upload in action)
6.2.4.2. Handler与HandlerAdaptor
- 6.2.4.2.1. 问题的起源
6.2.4.2.2. 深入了解Handler
- 6.2.4.2.2.1. 可用的Handler类型
6.2.4.2.2.2. 自定义Handler
6.2.4.2.3. 近看HandlerAdaptor的奥秘
6.2.4.2.4. 告知Handler与HandlerAdaptor的存在
6.2.4.3. 框架内处理流程拦截与HandlerInterceptor
- 6.2.4.3.1. 可用的HandlerInterceptor实现(Available HandlerInterceptors)
6.2.4.3.2. 自定义实现HandlerInterceptor
6.2.4.3.3. HandlerInterceptor寻根
6.2.4.3.4. HandlerInterceptor之外的选择(Alternative to HandlerInterceptor)
6.2.4.4. 框架内的异常处理与HandlerExceptionResolver
6.2.4.5. 国际化视图与LocalResolver
- 6.2.4.5.1. 可用的LocaleResolver
6.2.4.5.2. LocaleResolver的足迹
6.2.4.5.3. Locale的变更与LocaleChangeHandler
6.2.4.6. 主题(Theme)与ThemeResolver
- 6.2.4.6.1. 提供主题资源的ThemeSource
6.2.4.6.2. 管理主题的ThemeResolver
6.2.4.6.3. 切换主题的ThemeChangeInterceptor
6.3. SpringMVC新的基于Annotation的Controller(Annotation-based Controller In SpringMVC)
- 6.3.1. 初识“基于Annotation的Controller
”
6.3.2. “基于Annotation的Controller
”原型分析
- 6.3.2.1. 自定义用于“基于Annotation的Controller
”的HandlerMapping
6.3.2.2. 自定义用于“基于Annotation的Controller
”的HandlerAdaptor
6.3.3. 近看“基于Annotation的Controller
”
- 6.3.3.1. 声明“基于Annotation的Controller
”
- 6.3.3.1.1. 再谈@Controller
6.3.3.1.2. @RequestMapping详解
6.3.3.1.3. 请求处理方法签名规则说明
6.3.3.2. 请求参数到方法参数的绑定
- 6.3.3.2.1. 默认绑定行为
6.3.3.2.2. 使用@RequestParam明确的指定绑定关系
6.3.3.2.3. 添加自定义数据绑定规则
- 6.3.3.2.3.1. 使用@InitBinder标注的初始化方法
6.3.3.2.3.2. 指定自定义的WebBindingInitializer
6.3.3.3. 使用@ModelAttribute访问模型数据
6.3.3.4. 通过@SessionAttribute管理session数据
6.4. SpringMVC扩展篇
- 6.4.1. SpringMVC也Convention Over Configuration
- 6.4.1.1. Convention Over Configuration简介
6.4.1.2. SpringMVC中的Convention Over Configuration
- 6.4.1.2.1. web请求与Handler之间的约定
6.4.1.2.2. ModelAndView中的约定
6.4.1.2.3. web请求与视图之间的约定
6.4.1.3. 结束语
7. Spring框架对J2EE服务的集成和支持(JavaEE Services Integration in Spring)
- 7.1. Spring框架内的JNDI支持(JNDI Made Easy With Spring)
- 7.1.1. JNDI简单回顾
7.1.2. Spring框架内JNDI访问的基石-JndiTemplate
7.1.3. JNDI对象的依赖注入-JndiObjectFactoryBean
7.2. Spring框架对JMS的集成(JMS Made Easy With Spring)
- 7.2.1. 说说JMS的身世
7.2.2. 使用JMS API进行应用开发的传统套路
7.2.3. Spring改进后的JMS实战格斗术
- 7.2.3.1. 消息发送和同步接收(Synchronous Message Sending and Receiving)
- 7.2.3.1.1. JmsTemplate亲密接触(More about JmsTemplate)
7.2.3.1.2. 同步消息处理场景浅析
7.2.3.2. 异步消息接收(asynchronous message receiving in spring2.5)
- 7.2.3.2.1. 了解MessageListenerContainer
7.2.3.2.2. 消息驱动POJOs(Message-Driven POJOs)
7.2.3.3. JMS相关异常处理
7.2.3.4. 框架内的事务管理支持
7.3. 使用Spring发送Email(Java Mail Abstraction In Spring)
- 7.3.1. 思甜前,先忆苦
7.3.2. Spring的Email抽象层分析(spring's email abstraction analysis)
7.3.3. Spring的Email支持在实际开发中的应用
7.4. Spring中的任务调度与线程池支持(Job Scheduling And Thread Pooling Support In Spring)
- 7.4.1. Spring与Quartz
- 7.4.1.1. 初识Quartz
7.4.1.2. 融入Spring大家庭的Quartz
- 7.4.1.2.1. Job的实现策略
7.4.1.2.2. JobDetail的更多选择
7.4.1.2.3. Trigger的可配置化
7.4.1.2.4. Scheduler的新家
7.4.2. Spring对JDK Timer的集成
- 7.4.2.1. JDK Timer小记
7.4.2.2. Spring集成后的JDK Timer
- 7.4.2.2.1. 逃离TimerTask的魔咒
7.4.2.2.2. TimerTask的模块化封装 - ScheduledTimerTask
7.4.2.2.3. Timer的新家 - TimerFactoryBean
7.4.3. Executor的孪生兄弟TaskExecutor
- 7.4.3.1. 可用的TaskExecutor
7.4.3.2. TaskExecutor使用实例
7.5. Spring框架JEE服务集成之扩展篇
- 7.5.1. MailMonitor的延伸
8. Spring远程方案(Spring Remoting)
- 8.1. 从“对面交谈
”到“千里传声
”
8.2. Spring Remoting架构分析
- 8.2.1. Spring Remoting之远程访问异常体系
8.2.2. 统一风格的远程服务暴露与访问方式(consistent style for exposing and accessing remote services)
8.3. Spring Remoting提供的远程服务支持
- 8.3.1. 基于RMI的Remoting方案
- 8.3.1.1. 通过RMI暴露远程服务
8.3.1.2. 通过RMI访问远程服务
8.3.2. 基于HTTP的lightweight Remoting方案
- 8.3.2.1. 基于HTTP远程方案的实现原型分析
8.3.2.2. Spring HTTP Invoker
8.3.2.3. Caucho Hession And Burlap
8.3.3. 基于Web Service的远程方案
- 8.3.3.1. 通过Web Service暴露远程服务
8.3.3.2. 通过Web Service访问远程服务
8.3.4. 基于JMS的远程方案
- 8.3.4.1. 基于JMS的远程方案实现分析
8.3.4.2. 通过JMS暴露和访问远程服务
8.4. 扩展Spring Remoting
8.5. Spring Remoting之扩展篇
- 8.5.1. 拉开JMX演出的序幕(Showtime for JMX)
A. 参考书目
B. 参考文章