Table of contents
- Spring Framework 开发参考手册
- 前言
- 简介
- 概览
- 使用场景
- Spring 2.0 的新特性
- 简介
- 控制反转(IoC)容器
- 更简单的XML配置
- 新的bean作用域
- 可扩展的XML编写
- 面向切面编程(AOP)
- 更加简单的AOP XML配置
- 对@AspectJ 切面的支持
- 中间层
- 在XML里更为简单的声明性事务配置
- JPA
- 异步的JMS
- JDBC
- Web层
- Spring MVC的表单标签库
- Spring MVC合理的默认值
- Portlet 框架
- 其他特性
- 动态语言支持
- JMX
- 任务规划
- 对Java 5(Tiger)的支持
- 移植到Spring 2.0
- 一些变化
- Jar包
- XML配置
- Deprecated的类和方法
- Apache OJB
- iBatis
- 更新的样例应用
- 改进的文档
- 核心技术
- 控制反转容器
- 简介
- 容器和bean的基本原理
- 容器
- 配置元数据
- 实例化容器
- 组成基于XML配置元数据
- 多种bean
- 命名bean
- bean的别名
- 实例化bean
- 用构造器来实例化
- 使用 静态工厂方法实例化
- 使用实例工厂方法实例化
- 使用容器
- 依赖
- 注入依赖
- Setter注入
- 构造器注入
- 一些例子
- 构造器参数的解析
- 构造器参数类型匹配
- 构造器参数的索引
- bean属性及构造器参数详解
- 直接量(基本类型、Strings类型等。)
- idref元素
- 引用其它的bean(协作者)
- 内部bean
- 集合
- 集合合并
- 强类型集合(仅适用于Java5+)
- Nulls
- XML-based configuration metadata shortcuts
- 组合属性名称
- 使用depends-on
- 延迟初始化bean
- 自动装配(autowire)协作者
- 设置Bean使自动装配失效
- 依赖检查
- 方法注入
- Lookup方法注入
- 自定义方法的替代方案
- bean的作用域
- Singleton作用域
- Prototype作用域
- 其他作用域
- 初始化web配置
- Request作用域
- Session作用域
- global session作用域
- 作用域bean与依赖
- 自定义作用域
- 定制bean特性
- Lifecycle接口
- 初始化回调
- 析构回调
- 缺省的初始化和析构方法
- 在非web应用中优雅地关闭Spring IoC容器
- 了解自己
- BeanFactoryAware
- BeanNameAware
- bean定义的继承
- 容器扩展点
- 用BeanPostProcessor定制bean
- 使用BeanPostProcessor的Hello World示例
- RequiredAnnotationBeanPostProcessor示例
- 用BeanFactoryPostProcessor定制配置元数据
- PropertyPlaceholderConfigurer示例
- PropertyOverrideConfigurer示例
- 使用FactoryBean定制实例化逻辑
- ApplicationContext
- 利用MessageSource实现国际化
- 事件
- 底层资源的访问
- ApplicationContext在WEB应用中的实例化
- 粘合代码和可怕的singleton
- 使用Singleton-helper类
- 资源
- 简介
- Resource 接口
- 内置 Resource 实现
- UrlResource
- ClassPathResource
- FileSystemResource
- ServletContextResource
- InputStreamResource
- ByteArrayResource
- ResourceLoader
- ResourceLoaderAware 接口
- 把Resource作为属性来配置
- Application context 和Resource 路径
- 构造application context
- 创建 ClassPathXmlApplicationContext 实例 - 简介
- Application context构造器中资源路径的通配符
- Ant风格的pattern
- 潜在的可移植性
- classpath*: 前缀
- 其他关于通配符的说明
- FileSystemResource 提示
- 校验,数据绑定,BeanWrapper,与属性编辑器
- 简介
- 使用Spring的Validator接口进行校验
- 从错误代码到错误信息
- Bean处理和BeanWrapper
- 设置和获取属性值以及嵌套属性
- 内建的PropertyEditor实现
- 注册用户自定义的PropertyEditor
- 使用Spring进行面向切面编程(AOP)
- 简介
- AOP概念
- Spring AOP的功能和目标
- Spring的AOP代理
- @AspectJ支持
- 启用@AspectJ支持
- 声明一个切面
- 声明一个切入点(pointcut)
- 切入点指定者的支持
- 合并切入点表达式
- 共享常见的切入点(pointcut)定义
- 示例
- 声明通知
- 前置通知(Before advice)
- 返回后通知(After returning advice)
- 抛出后通知(After throwing advice)
- 后通知(After (finally) advice)
- 环绕通知(Around Advice)
- 通知参数(Advice parameters)
- 访问当前的连接点
- 传递参数给通知(Advice)
- 决定参数名
- 处理参数
- 通知(Advice)顺序
- 引入(Introductions)
- 切面实例化模型
- 例子
- Schema-based AOP support
- 声明一个切面
- 声明一个切入点
- 声明通知
- 通知(Advice)
- 返回后通知(After returning advice)
- 抛出异常后通知(After throwing advice)
- 后通知(After (finally) advice)
- 通知
- 通知参数
- 通知顺序
- 引入
- 切面实例化模型
- Advisors
- 例子
- AOP声明风格的选择
- Spring AOP还是完全用AspectJ?
- Spring AOP中使用@AspectJ还是XML?
- 混合切面类型
- 代理机制
- 编程方式创建@AspectJ代理
- 在Spring应用中使用AspectJ
- 在Spring中使用AspectJ来为domain object进行依赖注入
- @Configurable object的单元测试
- 多application context情况下的处理
- Spring中其他的AspectJ切面
- 使用Spring IoC来配置AspectJ的切面
- 在Spring应用中使用AspectJ Load-time weaving(LTW)
- 其它资源
- Spring AOP APIs
- 简介
- Spring中的切入点API
- 概念
- 切入点实施
- AspectJ切入点表达式
- 便利的切入点实现
- 静态切入点
- 正则表达式切入点
- 属性驱动的切入点
- 动态切入点
- 控制流切入点
- 切入点的基类
- 自定义切入点
- Spring的通知API
- 通知的生命周期
- Spring里的通知类型
- 拦截around通知
- 前置通知
- 异常通知
- 后置通知
- 引入通知
- Spring里的advisor(Advisor) API
- 使用ProxyFactoryBean创建AOP代理
- 基础
- JavaBean属性
- 基于JDK和CGLIB的代理
- 对接口进行代理
- 对类进行代理
- 使用“全局”advisor
- 简化代理定义
- 使用ProxyFactory通过编程创建AOP代理
- 操作被通知对象
- 使用“自动代理(autoproxy)”功能
- 自动代理bean定义
- BeanNameAutoProxyCreator
- DefaultAdvisorAutoProxyCreator
- AbstractAdvisorAutoProxyCreator
- 使用元数据驱动的自动代理
- 使用TargetSources
- 热交换目标源
- 池化目标源
- 原型目标源
- ThreadLocal目标源
- 定义新的通知类型
- 更多资源
- 测试
- 简介
- 单元测试
- 集成测试
- Context管理和缓存
- 测试fixture的依赖注入
- 事务管理
- 方便的变量
- 示例
- 运行集成测试
- 更多资源
- 中间层数据访问
- 事务管理
- 简介
- 动机
- 关键抽象
- 使用资源同步的事务
- 高层次方案
- 低层次方案
- TransactionAwareDataSourceProxy
- 声明式事务管理
- 理解Spring的声明式事务管理实现
- 第一个例子
- 回滚
- 为不同的bean配置不同的事务语义
- <tx:advice/> 有关的设置
- 使用 @Transactional
- @Transactional 有关的设置
- 插入事务操作
- 结合AspectJ使用 @Transactional
- 编程式事务管理
- 使用 TransactionTemplate
- 使用 PlatformTransactionManager
- 选择编程式事务管理还是声明式事务管理
- 与特定应用服务器集成
- BEA WebLogic
- IBM WebSphere
- 公共问题的解决方案
- 对一个特定的 DataSource 使用错误的事务管理器
- 更多的资源
- DAO支持
- 简介
- 一致的异常层次
- 一致的DAO支持抽象类
- 使用JDBC进行数据访问
- 简介
- Spring JDBC包结构
- 利用JDBC核心类实现JDBC的基本操作和错误处理
- JdbcTemplate类
- NamedParameterJdbcTemplate类
- SimpleJdbcTemplate类
- DataSource接口
- SQLExceptionTranslator接口
- 执行SQL语句
- 执行查询
- 更新数据库
- 控制数据库连接
- DataSourceUtils类
- SmartDataSource接口
- AbstractDataSource类
- SingleConnectionDataSource类
- DriverManagerDataSource类
- TransactionAwareDataSourceProxy类
- DataSourceTransactionManager类
- 用Java对象来表达JDBC操作
- SqlQuery类
- MappingSqlQuery类
- SqlUpdate类
- StoredProcedure类
- SqlFunction类
- 使用ORM工具进行数据访问
- 简介
- Hibernate
- 资源管理
- 在Spring的application context中创建 SessionFactory
- HibernateTemplate
- 不使用回调的基于Spring的DAO实现
- 基于Hibernate3的原生API实现DAO
- 编程式的事务划分
- 声明式的事务划分
- 事务管理策略
- 容器资源 vs 本地资源
- 在应用服务器中使用Hibernate的注意点
- JDO
- 建立PersistenceManagerFactory
- JdoTemplate和JdoDaoSupport
- 基于原生的JDO API实现DAO
- 事务管理
- JdoDialect
- Oracle TopLink
- SessionFactory 抽象层
- TopLinkTemplate 和 TopLinkDaoSupport
- 基于原生的TopLink API的DAO实现
- 事务管理
- iBATIS SQL Maps
- iBATIS 1.x和2.x的概览与区别
- iBATIS SQL Maps 1.x
- 创建SqlMap
- 使用 SqlMapTemplate 和 SqlMapDaoSupport
- iBATIS SQL Maps 2.x
- 创建SqlMapClient
- 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport
- 基于原生的iBATIS API的DAO实现
- JPA
- 在Spring环境中建立JPA
- LocalEntityManagerFactoryBean
- LocalContainerEntityManagerFactoryBean
- 在Tomcat上创建
- OC4J setup (10.1.3.1+)
- 通用LoadTimeWeaver
- 处理多个持久化单元
- JpaTemplate 和 JpaDaoSupport
- 基于原生的JPA实现DAO
- 异常转化
- 事务管理
- JpaDialect
- Web
- Web框架
- 介绍
- 与其他web框架的集成
- Spring Web MVC框架的特点
- DispatcherServlet
- 控制器
- AbstractController 和 WebContentGenerator
- 其它的简单控制器
- MultiActionController
- 命令控制器
- 处理器映射(handler mapping)
- BeanNameUrlHandlerMapping
- SimpleUrlHandlerMapping
- 拦截器(HandlerInterceptor)
- 视图与视图解析
- 视图解析器
- 视图解析链
- 重定向(Rediret)到另一个视图
- RedirectView
- redirect:前缀
- forward:前缀
- 本地化解析器
- AcceptHeaderLocaleResolver
- CookieLocaleResolver
- SessionLocaleResolver
- LocaleChangeInterceptor
- 使用主题
- 简介
- 如何定义主题
- 主题解析器
- Spring对分段文件上传(multipart file upload)的支持
- 介绍
- 使用MultipartResolver
- 在表单中处理分段文件上传
- 使用Spring的表单标签库
- 配置标签库
- form标签
- input标签
- checkbox标签
- radiobutton标签
- password标签
- select标签
- option标签
- options标签
- textarea标签
- hidden标签
- errors标签
- 处理异常
- 惯例优先原则(convention over configuration)
- 对控制器的支持: ControllerClassNameHandlerMapping
- 对模型的支持:ModelMap (ModelAndView)
- 对视图的支持: RequestToViewNameTranslator
- 其它资源
- 集成视图技术
- 简介
- JSP和JSTL
- 视图解析器
- 'Plain-old' JSPs versus JSTL 'Plain-old' JSP与JSTL
- 帮助简化开发的额外的标签
- Tiles
- 需要的资源
- 如何集成Tiles
- InternalResourceViewResolver
- ResourceBundleViewResolver
- Velocity和FreeMarker
- 需要的资源
- Context 配置
- 创建模板
- 高级配置
- velocity.properties
- FreeMarker
- 绑定支持和表单处理
- 用于绑定的宏
- 简单绑定
- 表单输入生成宏
- 输入域
- 选择输入域
- 重载HTML转码行为并使你的标签符合XHTML
- XSLT
- 写在段首
- Bean 定义
- 标准MVC控制器代码
- 把模型数据转化为XML
- 定义视图属性
- 文档转换
- 小结
- 文档视图(PDF/Excel)
- 简介
- 配置和安装
- 文档视图定义
- Controller 代码
- Excel视图子类
- PDF视图子类
- JasperReports
- 依赖的资源
- 配置
- 配置ViewResolver
- 配置View
- 关于报表文件
- 使用 JasperReportsMultiFormatView
- 构造ModelAndView
- 使用子报表
- 配置子报表文件
- 配置子报表数据源
- 配置Exporter的参数
- 集成其它Web框架
- 简介
- 通用配置
- JavaServer Faces
- DelegatingVariableResolver
- FacesContextUtils
- Struts
- ContextLoaderPlugin
- DelegatingRequestProcessor
- DelegatingActionProxy
- ActionSupport 类
- Tapestry
- 注入 Spring 托管的 beans
- 将 Spring Beans 注入到 Tapestry 页面中
- 组件定义文件
- 添加抽象访问方法
- 将 Spring Beans 注入到 Tapestry 页面中 - Tapestry 4.0+ 风格
- WebWork
- 更多资源
- Portlet MVC框架
- 介绍
- 控制器 - MVC中的C
- 视图 - MVC中的V
- Web作用范围的Bean
- DispatcherPortlet
- ViewRendererServlet
- 控制器
- AbstractController和PortletContentGenerator
- 其它简单的控制器
- Command控制器
- PortletWrappingController
- 处理器映射
- PortletModeHandlerMapping
- ParameterHandlerMapping
- PortletModeParameterHandlerMapping
- 增加 HandlerInterceptor
- HandlerInterceptorAdapter
- ParameterMappingInterceptor
- 视图和它们的解析
- Multipart文件上传支持
- 使用PortletMultipartResolver
- 处理表单里的文件上传
- 异常处理
- Portlet应用的部署
- 整合
- 使用Spring进行远程访问与Web服务
- 简介
- 使用RMI暴露服务
- 使用 RmiServiceExporter 暴露服务
- 在客户端链接服务
- 使用Hessian或者Burlap通过HTTP远程调用服务
- 为Hessian配置DispatcherServlet
- 使用HessianServiceExporter暴露你的bean
- 客户端连接服务
- 使用Burlap
- 对通过Hessian或Burlap暴露的服务使用HTTP基础认证
- 使用HTTP调用器暴露服务
- 暴露服务对象
- 在客户端连接服务
- Web服务
- 使用JAXI-RPC暴露服务
- 访问Web服务
- 注册bean映射
- 注册自己的处理方法
- 使用XFire来暴露Web服务
- 对远程接口不提供自动探测
- 在选择这些技术时的一些考虑
- Enterprise Java Bean(EJB)集成
- 简介
- 访问EJB
- 概念
- 访问本地的无状态Session Bean(SLSB)
- 访问远程SLSB
- 使用Spring提供的辅助类实现EJB组件
- JMS
- 简介
- 使用Spring JMS
- JmsTemplate
- 连接工厂
- (消息)目的地管理
- 消息侦听容器
- SimpleMessageListenerContainer
- DefaultMessageListenerContainer
- ServerSessionMessageListenerContainer
- 事务管理
- 发送一条消息
- 使用消息转换器
- SessionCallback 和ProducerCallback
- 接收消息
- 同步接收
- 异步接收 - 消息驱动的POJOs
- SessionAwareMessageListener 接口
- MessageListenerAdapter
- 事务中的多方参与
- JMX
- 介绍
- 输出bean到JMX
- 创建一个MBeanServer
- 复用现有的MBeanServer
- MBean的惰性初始化
- MBean的自动注册
- 控制注册行为
- 控制bean的管理接口
- MBeanInfoAssembler 接口
- 使用源码级元数据
- 使用JDK 5.0注解
- 源代码级的元数据类型
- 接口AutodetectCapableMBeanInfoAssembler
- 用Java接口定义管理接口
- 使用MethodNameBasedMBeanInfoAssembler
- 控制bean的 ObjectName
- 从Properties中读取ObjectName
- 使用 MetadataNamingStrategy
- JSR-160连接器
- 服务器端连接器
- 客户端连接器
- 基于Burlap/Hessian/SOAP的JMX
- 通过代理访问MBeans
- 通知
- 为通知注册监听器
- 发布通知
- 更多资源
- JCA CCI
- 介绍
- 配置CCI
- 连接器配置
- 在Spring中配置ConnectionFactory
- 配置CCI连接
- 使用一个 CCI 单连接
- 使用Spring的 CCI访问支持
- 记录转换
- CciTemplate 类
- DAO支持
- 自动输出记录生成
- 总结
- 直接使用一个 CCI Connection 接口和Interaction接口
- CciTemplate 使用示例
- 建模CCI访问为操作对象
- MappingRecordOperation
- MappingCommAreaOperation
- 自动输出记录生成
- 总结
- MappingRecordOperation 使用示例
- MappingCommAreaOperation 使用示例
- 事务
- Spring邮件抽象层
- 简介
- Spring邮件抽象结构
- 使用Spring邮件抽象
- 可插拔的MailSender实现
- 使用 JavaMail MimeMessageHelper
- 创建一条简单的MimeMessage,并且发送出去
- 发送附件和嵌入式资源(inline resources)
- Spring中的定时调度(Scheduling)和线程池(Thread Pooling)
- 简介
- 使用OpenSymphony Quartz 调度器
- 使用JobDetailBean
- 使用 MethodInvokingJobDetailFactoryBean
- 使用triggers和SchedulerFactoryBean来包装任务
- 使用JDK Timer支持类
- 创建定制的timers
- 使用 MethodInvokingTimerTaskFactoryBean类
- 打包:使用TimerFactoryBean来设置任务
- SpringTaskExecutor抽象
- TaskExecutor接口
- 何时使用TaskExecutor接口
- TaskExecutor类型
- 使用TaskExecutor接口
- 动态语言支持
- 介绍
- 第一个例子
- 定义动态语言支持的bean
- 公共概念
- <lang:language/> 元素
- Refreshable bean
- 内置动态语言源文件
- 理解dynamic-language-backed bean context的构造器注入
- JRuby beans
- Groovy beans
- BeanShell beans
- 场景
- Spring MVC控制器脚本化
- Validator脚本化
- 更多的资源
- 注解和源代码级的元数据支持
- 简介
- Spring的元数据支持
- 注解
- @Required
- Spring中的其它@Annotations
- 集成Jakarta Commons Attributes
- 元数据和Spring AOP自动代理
- 基本原理
- 声明式事务管理
- 缓冲
- 自定义元数据
- 使用属性来减少MVC web层配置
- 元数据属性的其它用法
- 增加对额外元数据API的支持
- XML Schema-based configuration
- Introduction
- XML Schema-based configuration
- Referencing the schemas
- The util schema
- <util:constant/>
- Setting a bean property or constructor arg from a field value
- <util:property-path/>
- Using <util:property-path/> to set a bean property or constructor-argument
- <util:properties/>
- <util:list/>
- <util:map/>
- <util:set/>
- The jee schema
- <jee:jndi-lookup/> (simple)
- <jee:jndi-lookup/> (with single JNDI environment setting)
- <jee:jndi-lookup/> (with multiple JNDI environment settings)
- <jee:jndi-lookup/> (complex)
- <jee:local-slsb/> (simple)
- <jee:local-slsb/> (complex)
- <jee:remote-slsb/>
- The lang schema
- The tx (transaction) schema
- The aop schema
- The tool schema
- The beans schema
- Setting up your IDE
- Setting up Eclipse
- Setting up IntelliJ IDEA
- Integration issues
- XML parsing errors in the Resin v.3 application server
- Extensible XML authoring
- Introduction
- Authoring the schema
- Coding a NamespaceHandler
- Coding a BeanDefinitionParser
- Registering the handler and the schema
- META-INF/spring.handlers
- META-INF/spring.schemas
- spring-beans-2.0.dtd
- spring.tld
- Introduction
- The bind tag
- The escapeBody tag
- The hasBindErrors tag
- The htmlEscape tag
- The message tag
- The nestedPath tag
- The theme tag
- The transform tag
- spring-form.tld
- Introduction
- The checkbox tag
- The errors tag
- The form tag
- The hidden tag
- The input tag
- The label tag
- The option tag
- The options tag
- The password tag
- The radiobutton tag
- The select tag
- The textarea tag
- Spring 2.0 开发手册中文化项目
- 声明
- 致谢
- 参与人员及任务分配
- Spring 2.0 正式版开发手册翻译说明
- 项目历程
- Spring 2.0 RC2 开发手册翻译项目
- Spring 2.0 正式版开发手册翻译项目