Spring中文手册
目录
搜索
前言
简介
概览
使用场景
Spring 2.0和 2.5的新特性
简介
控制反转(IoC)容器
新的bean作用域
更简单的XML配置
可扩展的XML编写
Annotation(注解)驱动配置
在classpath中自动搜索组件
面向切面编程(AOP)
更加简单的AOP XML配置
对@AspectJ 切面的支持
对bean命名pointcut( bean name pointcut element)的支持
对AspectJ装载时织入(AspectJ load-time weaving)的支持
中间层
在XML里更为简单的声明性事务配置
对Websphere 事务管理的完整支持
JPA
异步的JMS
JDBC
Web层
Spring MVC合理的默认值
Portlet 框架
基于Annotation的控制器
Spring MVC的表单标签库
对Tiles 2 支持
对JSF 1.2支持
JAX-WS支持
其他
动态语言支持
增强的测试支持
JMX 支持
将Spring 应用程序上下文部署为JCA adapter
计划任务
对Java 5 (Tiger) 支持
移植到Spring 2.5
改变
支持的JDK版本
Spring 2.5的Jar打包
XML配置
Deprecated(淘汰)的类和方法
Apache OJB
iBATIS
Hibernate
JDO
UrlFilenameViewController
更新的样例应用
改进的文档
核心技术
IoC(控制反转)容器
简介
基本原理 - 容器和bean
容器
配置元数据
实例化容器
XML配置元数据的结构
多种bean
bean的命名
bean的别名
实例化bean
用构造器来实例化
使用静态工厂方法实例化
使用实例工厂方法实例化
使用容器
依赖
注入依赖
构造器注入
构造器参数解析
构造器参数类型匹配
构造参数索引
Setter注入
一些例子
依赖配置详解
直接变量(基本类型、Strings类型等。)
idref元素
引用其它的bean(协作者)
内部bean
集合
集合的合并
强类型集合(仅适用于Java5+)
Nulls
XML配置文件的简写及其他
XML-based configuration metadata shortcuts
使用p名称空间配置属性
组合属性名称
使用depends-on
延迟初始化bean
自动装配(autowire)协作者
将bean排除在自动装配之外
依赖检查
方法注入
Lookup方法注入
自定义方法的替代方案
Bean的作用域
Singleton作用域
Prototype作用域
Singleton beans和prototype-bean的依赖
其他作用域
初始化web配置
Request作用域
Session作用域
global session作用域
作用域bean与依赖
选择创建代理的类型
自定义作用域
创建自定义作用域
使用自定义作用域
定制bean特性
生命周期回调
初始化回调
析构回调
缺省的初始化和析构方法
组合生命周期机制
在非web应用中优雅地关闭Spring IoC容器
了解自己
BeanFactoryAware
BeanNameAware
bean定义的继承
容器扩展点
用BeanPostProcessor定制bean
使用BeanPostProcessor的Hello World示例
RequiredAnnotationBeanPostProcessor示例
用BeanFactoryPostProcessor定制配置元数据
PropertyPlaceholderConfigurer示例
PropertyOverrideConfigurer示例
使用FactoryBean定制实例化逻辑
The ApplicationContext
BeanFactory 还是 ApplicationContext?
利用MessageSource实现国际化
事件
底层资源的访问
ApplicationContext在WEB应用中的实例化
粘合代码和可怕的singleton
以J2EE RAR文件的形式部署Spring ApplicationContext
基于注解(Annotation-based)的配置
@Autowired
基于注解的自动连接微调
CustomAutowireConfigurer
@Resource
@PostConstruct 与 @PreDestroy
对受管组件的Classpath扫描
@Component和更多典型化注解
自动检测组件
使用过滤器自定义扫描
自动检测组件的命名
为自动检测的组件提供一个作用域
用注解提供限定符元数据
注册一个LoadTimeWeaver
资源
简介
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
使用PropertyEditorRegistrars
使用Spring进行面向切面编程(AOP)
简介
AOP概念
Spring AOP的功能和目标
AOP代理
@AspectJ支持
启用@AspectJ支持
声明一个切面
声明一个切入点(pointcut)
切入点指示符(PCD)的支持
组合切入点表达式
共享通用切入点定义
示例
声明通知
前置通知
后置通知(After returning advice)
异常通知(After throwing advice)
最终通知(After (finally) advice)
环绕通知
通知参数(Advice parameters)
访问当前的连接点
传递参数给通知
确定参数名
处理参数
通知顺序
引入(Introduction)
切面实例化模型
例子
基于Schema的AOP支持
声明一个切面
声明一个切入点
声明通知
前置通知
后置通知
异常通知
最终通知
环绕通知
通知参数
通知顺序
引入
切面实例化模型
Advisor
例子
AOP声明风格的选择
Spring AOP还是完全用AspectJ?
Spring AOP中使用@AspectJ还是XML?
混合切面类型
代理机制
理解AOP代理
以编程方式创建@AspectJ代理
在Spring应用中使用AspectJ
在Spring中使用AspectJ进行domain object的依赖注入
@Configurable对象的单元测试
Working with multiple application contexts
Spring中其他的AspectJ切面
使用Spring IoC来配置AspectJ的切面
在Spring应用中使用AspectJ加载时织入(LTW)
第一个例子
切面
'META-INF/aop.xml'
相关类库(JARS)
Spring配置
特定环境的配置
通用Java应用
Tomcat
WebLogic
更多资源
Spring AOP APIs
简介
Spring中的切入点API
概念
切入点运算
AspectJ切入点表达式
便利的切入点实现
静态切入点
正则表达式切入点
属性驱动的切入点
动态切入点
控制流切入点
切入点的超类
自定义切入点
Spring的通知API
通知的生命周期
Spring里的通知类型
拦截环绕通知
前置通知
异常通知
后置通知
引入通知
Spring里的Advisor API
使用ProxyFactoryBean创建AOP代理
基础
JavaBean属性
基于JDK和CGLIB的代理
对接口进行代理
对类进行代理
使用“全局”通知器
简化代理定义
使用ProxyFactory通过编程创建AOP代理
操作被通知对象
使用“自动代理(autoproxy)”功能
自动代理bean定义
BeanNameAutoProxyCreator
DefaultAdvisorAutoProxyCreator
AbstractAdvisorAutoProxyCreator
使用元数据驱动的自动代理
使用TargetSource
热交换目标源
池化目标源
原型目标源
ThreadLocal目标源
定义新的Advice类型
更多资源
测试
简介
单元测试
Mock对象
JNDI
Servlet API
Portlet API
单元测试支持类
通用工具类
Spring MVC
集成测试
概览
使用哪个支持框架
通用目标
上下文管理及缓存
测试fixtures依赖注入
事务管理
集成测试支持类
JDBC测试支持
常用注解
JUnit 3.8遗留支持
上下文管理及缓存
测试fixture依赖注入
字段级别(Field Level)注入
事务管理
JUnit 3.8 遗留支持类
Java 5+ 专有支持
使用注解的事务相关测试
JPA支持类
Spring TestContext Framework
主要的抽象
上下文管理和缓存
测试fixture的依赖注入
事务管理
TestContext支持类
JUnit 3.8支持类
JUnit 4.4支持类
定制JUnit 4.4运行器
TestNG支持类
TestContext框架注解支持
PetClinic示例
更多资源
中间层数据访问
事务管理
简介
动机
关键抽象
使用资源同步的事务
高层次方案
低层次方案
TransactionAwareDataSourceProxy
声明式事务管理
理解Spring的声明式事务管理实现
第一个例子
回滚
为不同的bean配置不同的事务语义
<tx:advice/> 有关的设置
使用 @Transactional
@Transactional 有关的设置
事务传播
required
RequiresNew
Nested
通知事务操作
结合AspectJ使用 @Transactional
编程式事务管理
使用TransactionTemplate
指定事务设置
使用PlatformTransactionManager
选择编程式事务管理还是声明式事务管理
与特定应用服务器集成
IBM WebSphere
BEA WebLogic
Oracle OC4J
常见问题的解决方法
对一个特定的 DataSource 使用了错误的事务管理器
更多的资源
DAO支持
简介
一致的异常层次
一致的DAO支持抽象类
使用JDBC进行数据访问
简介
选择一种工作模式
Spring JDBC包结构
利用JDBC核心类控制JDBC的基本操作和错误处理
JdbcTemplate类
一些示例
查询(SELECT)
更新(INSERT/UPDATE/DELETE)
其他操作
JdbcTemplate 的最佳实践
NamedParameterJdbcTemplate类
SimpleJdbcTemplate类
DataSource接口
SQLExceptionTranslator接口
执行SQL语句
执行查询
更新数据库
获取自动生成的主键
控制数据库连接
DataSourceUtils类
SmartDataSource接口
AbstractDataSource类
SingleConnectionDataSource类
DriverManagerDataSource类
TransactionAwareDataSourceProxy类
DataSourceTransactionManager类
NativeJdbcExtractor
JDBC批量操作
使用JdbcTemplate进行批量操作
使用SimpleJdbcTemplate进行批量操作
通过使用SimpleJdbc类简化JDBC操作
使用SimpleJdbcInsert插入数据
使用SimpleJdbcInsert来获取自动生成的主键
指定SimpleJdbcInsert所使用的字段
使用SqlParameterSource提供参数值
使用SimpleJdbcCall调用存储过程
声明SimpleJdbcCall使用的参数
如何定义SqlParameters
使用SimpleJdbcCall调用内置函数
使用SimpleJdbcCall返回的ResultSet/REF Cursor
用Java对象来表达JDBC操作
SqlQuery类
MappingSqlQuery类
SqlUpdate类
StoredProcedure类
SqlFunction类
参数和数据处理的基本原则
为参数设置SQL类型信息
处理BLOB 和 CLOB对象
在IN语句中传入一组参数值
处理复杂类型的存储过程调用
使用ORM工具进行数据访问
简介
Hibernate
资源管理
在Spring容器中创建 SessionFactory
The HibernateTemplate
不使用回调的基于Spring的DAO实现
基于Hibernate3的原生API实现DAO
编程式的事务划分
声明式的事务划分
事务管理策略
容器资源 vs 本地资源
在应用服务器中使用Hibernate的注意事项
JDO
建立PersistenceManagerFactory
JdoTemplate和JdoDaoSupport
基于原生的JDO API实现DAO
事务管理
JdoDialect
Oracle TopLink
SessionFactory 抽象层
TopLinkTemplate and TopLinkDaoSupport
基于原生的TopLink API的DAO实现
事务管理
iBATIS SQL Maps
创建SqlMapClient
使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport
基于原生的iBATIS API的DAO实现
JPA
在Spring环境中建立JPA
LocalEntityManagerFactoryBean
从JNDI中获取 EntityManagerFactory
LocalContainerEntityManagerFactoryBean
Tomcat(5.0以上)加载时的织入配置
使用VM代理的全局加载时织入
上下文范围内的加载时织入配置
处理多持久化单元
JpaTemplate 和 JpaDaoSupport
基于原生的JPA实现DAO
异常转化
事务管理
JpaDialect
The Web
Web MVC framework Web框架
概述
与其他MVC实现框架的集成
Spring Web MVC框架的特点
DispatcherServlet
控制器
AbstractController 和 WebContentGenerator
其它的简单控制器
MultiActionController
命令控制器
处理器映射(handler mapping)
BeanNameUrlHandlerMapping
SimpleUrlHandlerMapping
拦截器(HandlerInterceptor)
视图与视图解析
视图解析器(ViewResolver)
视图解析链
重定向(Rediret)到另一个视图
RedirectView
redirect:前缀
forward:前缀
本地化解析器
AcceptHeaderLocaleResolver
CookieLocaleResolver
SessionLocaleResolver
LocaleChangeInterceptor
使用主题
简介
如何定义主题
主题解析器
Spring对分段文件上传(multipart file upload)的支持
介绍
使用MultipartResolver
在表单中处理分段文件上传
使用Spring的表单标签库
配置
form标签
input标签
checkbox标签
checkboxes标签
radiobutton标签
radiobuttons标签
password标签
select标签
option标签
options标签
textarea标签
hidden标签
errors标签
处理异常
惯例优先原则(convention over configuration)
对控制器的支持:ControllerClassNameHandlerMapping
对模型的支持:ModelMap(ModelAndView)
对视图的支持:RequestToViewNameTranslator
基于注解的控制器配置
建立dispatcher实现注解支持
使用@Controller定义一个控制器
使用@RequestMapping映射请求
使用@RequestParam绑定请求参数到方法参数
使用@ModelAttribute提供一个从模型到数据的链接
使用@SessionAttributes指定存储在会话中的属性
自定义WebDataBinder初始化
使用@InitBinder自定义数据绑定
配置一个定制的WebBindingInitializer
更多资源
集成视图技术
简介
JSP和JSTL
视图解析器
'Plain-old' JSPs versus JSTL 'Plain-old' JSP与JSTL
帮助简化开发的额外的标签
Tiles
需要的资源
如何集成Tiles
UrlBasedViewResolver类
ResourceBundleViewResolver类
SimpleSpringPreparerFactory 和 SpringBeanPreparerFactory
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 Classes
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
增加 HandlerInterceptors
HandlerInterceptorAdapter
ParameterMappingInterceptor
视图和它们的解析
Multipart文件上传支持
使用 PortletMultipartResolver
处理表单里的文件上传
异常处理
Portlet应用的部署
整合
使用Spring进行远程访问与Web服务
简介
使用RMI暴露服务
使用RmiServiceExporter暴露服务
在客户端链接服务
使用Hessian或者Burlap通过HTTP远程调用服务
为Hessian和co.配置DispatcherServlet
使用HessianServiceExporter暴露你的bean
在客户端连接服务
使用Burlap
对通过Hessian或Burlap暴露的服务使用HTTP Basic认证
使用HTTP调用器暴露服务
Exposing the service object
在客户端连接服务
Web Services
使用JAX-RPC暴露基于servlet的web服务
使用JAX-RPC访问web服务
注册JAX-RPC Bean映射
注册自己的JAX-RPC 处理器
使用JAX-WS暴露基于servlet的web服务
使用JAX-WS暴露单独web服务
使用Spring支持的JAX-WS RI来暴露服务
使用JAX-WS访问web服务
使用XFire来暴露Web服务
JMS
服务端配置
客户端配置
对远程接口不提供自动探测实现
在选择这些技术时的一些考虑
Enterprise Java Beans (EJB) 集成
简介
访问EJB
概念
访问本地的无状态Session Bean(SLSB)
访问远程SLSB
Accessing EJB 2.x SLSBs versus EJB 3 SLSBs
使用Spring提供的辅助类实现EJB组件
EJB 2.x base classes
EJB 3 注入拦截
JMS (Java Message Service)
简介
使用Spring JMS
JmsTemplate
连接工厂
目的地管理
消息侦听容器
SimpleMessageListenerContainer
DefaultMessageListenerContainer
ServerSessionMessageListenerContainer
事务管理
发送消息
使用消息转换器
SessionCallback 和 ProducerCallback
接收消息
同步接收
异步接收 - 消息驱动的POJO
SessionAwareMessageListener接口
MessageListenerAdapter
事务中的消息处理
JCA消息端点的支持
JMS命名空间支持
JMX
介绍
将Bean暴露为JMX
创建MBeanServer
重用原有的MBeanServer
延迟初始化的MBean
MBean的自动注册
控制注册行为
控制Bean的管理接口
MBeanInfoAssembler接口
使用源码级元数据
使用JDK 5.0的注解
源代码级的元数据类型
AutodetectCapableMBeanInfoAssembler接口
用Java接口定义管理接口
使用MethodNameBasedMBeanInfoAssembler
控制Bean的ObjectName
从Properties读取Properties
使用MetadataNamingStrategy
<context:mbean-export/>元素
JSR-160连接器
服务器端连接器
客户端连接器
基于Burlap/Hessian/SOAP的JMX
通过代理访问MBean
通知
为通知注册监听器
发布通知
更多资源
JCA CCI
简介
配置CCI
连接器配置
在Spring中配置ConnectionFactory
配置CCI连接
使用一个 CCI 单连接
使用Spring的 CCI访问支持
记录转换
CciTemplate类
DAO支持
自动输出记录生成
总结
直接使用一个CCI Connection接口和Interaction接口
CciTemplate 使用示例
建模CCI访问为操作对象
MappingRecordOperation
MappingCommAreaOperation
自动生成输出记录
总结
MappingRecordOperation 使用示例
MappingCommAreaOperation 使用示例
事务
Spring邮件抽象层
简介
使用Spring邮件抽象
MailSender 和 SimpleMailMessage 的基本用法
使用 JavaMailSender 和 MimeMessagePreparator
使用MimeMessageHelper
发送附件和嵌入式资源(inline resources)
附件
内嵌资源
使用模板来创建邮件内容
一个基于Velocity的示例
Spring中的定时调度(Scheduling)和线程池(Thread Pooling)
简介
使用OpenSymphony Quartz 调度器
使用JobDetailBean
使用 MethodInvokingJobDetailFactoryBean
使用triggers和SchedulerFactoryBean来包装任务
使用JDK Timer支持类
创建定制的timers
使用 MethodInvokingTimerTaskFactoryBean类
最后:使用TimerFactoryBean来设置任务
SpringTaskExecutor抽象
TaskExecutor接口
TaskExecutor类型
使用TaskExecutor
动态语言支持
介绍
第一个示例
定义动态语言支持的bean
公共概念
<lang:language/> 元素
Refreshable bean
内置动态语言源文件
理解dynamic-language-backed bean上下文中的构造器注入
JRuby beans
Groovy beans
通过回调定制Groovy对象
BeanShell beans
场景
Spring MVC控制器的脚本化
Validator的脚本化
Bits and bobs
AOP - 通知脚本化bean
作用域
更多的资源
注解和源代码级的元数据支持
简介
Spring的元数据支持
注解
@Required
Spring中的其它@Annotations
Jakarta Commons Attributes集成
元数据和Spring AOP自动代理
基本原理
声明式事务管理
示例程序
演示案例
介绍
使用动态语言实现的Spring MVC控制器
构建与部署
使用SimpleJdbcTemplate和@Repository实现DAO
域对象
Data Access Object
构建
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 jms schema
The tx (transaction) schema
The aop schema
The context schema
<property-placeholder/>
<annotation-config/>
<component-scan/>
<load-time-weaver/>
<spring-configured/>
<mbean-export/>
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'
Using a custom extension in your Spring XML configuration
Meatier examples
Nesting custom tags within custom tags
Custom attributes on 'normal' elements
Further Resources
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 checkboxes 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 radiobuttons tag
The select tag
The textarea tag
Spring 2.5开发手册中文化项目
声明
致谢
参与人员
项目历程
©
本文档使用
php.cn手册
发布
文字
A
A
默认
护眼
夜间
部分 V. 示例程序
参考手册的最后一部分,涵盖了Spring 开发框架发行包中附带的示例程序。
目录
26. 演示案例
26.1. 介绍
26.2. 使用动态语言实现的Spring MVC控制器
26.2.1. 构建与部署
26.3. 使用
SimpleJdbcTemplate
和
@Repository
实现DAO
26.3.1. 域对象
26.3.2. Data Access Object
26.3.3. 构建
上一篇:
下一篇: