Spring Framework 开发参考手册

来源:百度文库 编辑:神马文学网 时间:2024/04/28 04:40:59

Spring Framework 开发参考手册
Authors
 
Rod Johnson, Juergen Hoeller, Alef Arendsen, Colin Sampaleanu, Rob Harrop, Thomas Risberg, Darren Davison, Dmitriy Kopylenko, Mark Pollack, Thierry Templier, Erwin Vervaet, Portia Tung, Ben Hale, Adrian Colyer, John Lewis, Costin Leau, Rick Evans
2.0
Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.
Table of Contents
前言1.简介1.1.概览1.2.使用场景
2.Spring 2.0 的新特性2.1.简介2.2.控制反转(IoC)容器2.2.1.更简单的XML配置2.2.2.新的bean作用域2.2.3.可扩展的XML编写
2.3.面向切面编程(AOP)2.3.1.更加简单的AOP XML配置2.3.2.对@AspectJ 切面的支持
2.4.中间层2.4.1.在XML里更为简单的声明性事务配置2.4.2.JPA2.4.3.异步的JMS2.4.4.JDBC
2.5.Web层2.5.1.Spring MVC的表单标签库2.5.2.Spring MVC合理的默认值2.5.3.Portlet 框架
2.6.其他特性2.6.1.动态语言支持2.6.2.JMX2.6.3.任务规划2.6.4.对Java 5(Tiger)的支持
2.7.移植到Spring 2.02.7.1.一些变化2.7.1.1.Jar包2.7.1.2.XML配置2.7.1.3.Deprecated的类和方法2.7.1.4.Apache OJB2.7.1.5.iBatis
2.8.更新的样例应用2.9.改进的文档
I.核心技术3.控制反转容器3.1.简介3.2.容器和bean的基本原理3.2.1.容器3.2.1.1.配置元数据
3.2.2.实例化容器3.2.2.1.组成基于XML配置元数据
3.2.3.多种bean3.2.3.1.命名bean3.2.3.2.实例化bean
3.2.4.使用容器
3.3.依赖3.3.1.注入依赖3.3.1.1.Setter注入3.3.1.2.构造器注入3.3.1.3.一些例子
3.3.2.构造器参数的解析3.3.2.1.构造器参数类型匹配3.3.2.2.构造器参数的索引
3.3.3.bean属性及构造器参数详解3.3.3.1.直接量(基本类型、Strings类型等。)3.3.3.2.引用其它的bean(协作者)3.3.3.3.内部bean3.3.3.4.集合3.3.3.5.Nulls3.3.3.6.XML-based configuration metadata shortcuts3.3.3.7.组合属性名称
3.3.4.使用depends-on3.3.5.延迟初始化bean3.3.6.自动装配(autowire)协作者3.3.6.1.设置Bean使自动装配失效
3.3.7.依赖检查3.3.8.方法注入3.3.8.1.Lookup方法注入3.3.8.2.自定义方法的替代方案
3.4.bean的作用域3.4.1.Singleton作用域3.4.2.Prototype作用域3.4.3.其他作用域3.4.3.1.初始化web配置3.4.3.2.Request作用域3.4.3.3.Session作用域3.4.3.4.global session作用域3.4.3.5.作用域bean与依赖
3.4.4.自定义作用域
3.5.定制bean特性3.5.1.Lifecycle接口3.5.1.1.初始化回调3.5.1.2.析构回调
3.5.2.了解自己3.5.2.1.BeanFactoryAware 3.5.2.2.BeanNameAware
3.6.bean定义的继承3.7.容器扩展点3.7.1.用BeanPostProcessor定制bean3.7.1.1.使用BeanPostProcessor的Hello World示例3.7.1.2.RequiredAnnotationBeanPostProcessor示例
3.7.2.用BeanFactoryPostProcessor定制配置元数据3.7.2.1.PropertyPlaceholderConfigurer示例3.7.2.2.PropertyOverrideConfigurer示例
3.7.3.使用FactoryBean定制实例化逻辑
3.8.ApplicationContext3.8.1.利用MessageSource实现国际化3.8.2.事件3.8.3.底层资源的访问3.8.4.ApplicationContext在WEB应用中的实例化
3.9.粘合代码和可怕的singleton3.9.1.使用Singleton-helper类
4.资源4.1.简介4.2.Resource 接口4.3.内置 Resource 实现4.3.1.UrlResource 4.3.2.ClassPathResource 4.3.3.FileSystemResource 4.3.4.ServletContextResource 4.3.5.InputStreamResource 4.3.6.ByteArrayResource
4.4.ResourceLoader 4.5.ResourceLoaderAware 接口4.6.把Resource作为属性来配置4.7.Application context 和Resource 路径4.7.1.构造application context4.7.1.1.创建 ClassPathXmlApplicationContext 实例 - 简介
4.7.2.Application context构造器中资源路径的通配符4.7.2.1.Ant风格的pattern4.7.2.2.classpath*: 前缀4.7.2.3.其他关于通配符的说明
4.7.3.FileSystemResource 提示
5.校验,数据绑定,BeanWrapper,与属性编辑器5.1.简介5.2.使用Spring的Validator接口进行校验5.3.从错误代码到错误信息5.4.Bean处理和BeanWrapper5.4.1.设置和获取属性值以及嵌套属性5.4.2.内建的PropertyEditor实现5.4.2.1.注册用户自定义的PropertyEditor
6.使用Spring进行面向切面编程(AOP)6.1.简介6.1.1.AOP概念6.1.2.Spring AOP的功能和目标6.1.3.Spring的AOP代理
6.2.@AspectJ支持6.2.1.启用@AspectJ支持6.2.2.声明一个切面6.2.3.声明一个切入点(pointcut)6.2.3.1.切入点指定者的支持6.2.3.2.合并切入点表达式6.2.3.3.共享常见的切入点(pointcut)定义6.2.3.4.示例
6.2.4.声明通知6.2.4.1.前置通知(Before advice) 6.2.4.2.返回后通知(After returning advice)6.2.4.3.抛出后通知(After throwing advice)6.2.4.4.后通知(After (finally) advice)6.2.4.5.环绕通知(Around Advice)6.2.4.6.通知参数(Advice parameters)6.2.4.7.通知(Advice)顺序
6.2.5.引入(Introductions)6.2.6.切面实例化模型6.2.7.例子
6.3.Schema-based AOP support6.3.1.声明一个切面6.3.2.声明一个切入点6.3.3.声明通知6.3.3.1.通知(Advice)6.3.3.2.返回后通知(After returning advice)6.3.3.3.抛出异常后通知(After throwing advice)6.3.3.4.后通知(After (finally) advice)6.3.3.5.通知6.3.3.6.通知参数6.3.3.7.通知顺序
6.3.4.引入6.3.5.切面实例化模型6.3.6.Advisors6.3.7.例子
6.4.AOP声明风格的选择6.4.1.Spring AOP还是完全用AspectJ?6.4.2.Spring AOP中使用@AspectJ还是XML?
6.5.混合切面类型6.6.代理机制6.7.编程方式创建@AspectJ代理6.8.在Spring应用中使用AspectJ6.8.1.在Spring中使用AspectJ来为domain object进行依赖注入6.8.1.1.@Configurable object的单元测试6.8.1.2.多application context情况下的处理
6.8.2.Spring中其他的AspectJ切面6.8.3.使用Spring IoC来配置AspectJ的切面6.8.4.在Spring应用中使用AspectJ Load-time weaving(LTW)
6.9.其它资源
7.Spring AOP APIs7.1.简介7.2.Spring中的切入点API7.2.1.概念7.2.2.切入点实施7.2.3.AspectJ切入点表达式7.2.4.便利的切入点实现7.2.4.1.静态切入点7.2.4.2.动态切入点
7.2.5.切入点的基类7.2.6.自定义切入点
7.3.Spring的通知API7.3.1.通知的生命周期7.3.2.Spring里的通知类型7.3.2.1.拦截around通知7.3.2.2.前置通知7.3.2.3.异常通知7.3.2.4.后置通知7.3.2.5.引入通知
7.4.Spring里的advisor(Advisor) API7.5.使用ProxyFactoryBean创建AOP代理7.5.1.基础7.5.2.JavaBean属性7.5.3.基于JDK和CGLIB的代理7.5.4.对接口进行代理7.5.5.对类进行代理7.5.6.使用“全局”advisor
7.6.简化代理定义7.7.使用ProxyFactory通过编程创建AOP代理7.8.操作被通知对象7.9.使用“自动代理(autoproxy)”功能7.9.1.自动代理bean定义7.9.1.1.BeanNameAutoProxyCreator7.9.1.2.DefaultAdvisorAutoProxyCreator7.9.1.3.AbstractAdvisorAutoProxyCreator
7.9.2.使用元数据驱动的自动代理
7.10.使用TargetSources7.10.1.热交换目标源7.10.2.池化目标源7.10.3.原型目标源7.10.4.ThreadLocal目标源
7.11.定义新的通知类型7.12.更多资源
8.测试8.1.简介8.2.单元测试8.3.集成测试8.3.1.Context管理和缓存8.3.2.测试fixture的依赖注入8.3.3.事务管理8.3.4.方便的变量8.3.5.示例8.3.6.运行集成测试
8.4.更多资源
II.中间层数据访问9.事务管理9.1.简介9.2.动机9.3.关键抽象9.4.使用资源同步的事务9.4.1.高层次方案9.4.2.低层次方案9.4.3.TransactionAwareDataSourceProxy
9.5.声明式事务管理9.5.1.理解Spring的声明式事务管理实现9.5.2.第一个例子9.5.3.回滚9.5.4.为不同的bean配置不同的事务语义9.5.5. 有关的设置9.5.6.使用 @Transactional9.5.6.1.@Transactional 有关的设置
9.5.7.插入事务操作9.5.8.结合AspectJ使用 @Transactional
9.6.编程式事务管理9.6.1.使用 TransactionTemplate9.6.2.使用 PlatformTransactionManager
9.7.选择编程式事务管理还是声明式事务管理9.8.与特定应用服务器集成9.8.1.BEA WebLogic9.8.2.IBM WebSphere
9.9.公共问题的解决方案9.9.1.对一个特定的 DataSource 使用错误的事务管理器
9.10.更多的资源
10.DAO支持10.1.简介10.2.一致的异常层次10.3.一致的DAO支持抽象类
11.使用JDBC进行数据访问11.1.简介11.1.1.Spring JDBC包结构
11.2.利用JDBC核心类实现JDBC的基本操作和错误处理11.2.1.JdbcTemplate类11.2.2.NamedParameterJdbcTemplate类11.2.3.SimpleJdbcTemplate类11.2.4.DataSource接口11.2.5.SQLExceptionTranslator接口11.2.6.执行SQL语句11.2.7.执行查询11.2.8.更新数据库
11.3.控制数据库连接11.3.1.DataSourceUtils类11.3.2.SmartDataSource接口11.3.3.AbstractDataSource类11.3.4.SingleConnectionDataSource类11.3.5.DriverManagerDataSource类11.3.6.TransactionAwareDataSourceProxy类11.3.7.DataSourceTransactionManager类
11.4.用Java对象来表达JDBC操作11.4.1.SqlQuery类11.4.2.MappingSqlQuery类11.4.3.SqlUpdate类11.4.4.StoredProcedure类11.4.5.SqlFunction类
12.使用ORM工具进行数据访问12.1.简介12.2.Hibernate12.2.1.资源管理12.2.2.在Spring的application context中创建 SessionFactory 12.2.3.HibernateTemplate 12.2.4.不使用回调的基于Spring的DAO实现12.2.5.基于Hibernate3的原生API实现DAO12.2.6.编程式的事务划分12.2.7.声明式的事务划分12.2.8.事务管理策略12.2.9.容器资源 vs 本地资源12.2.10.在应用服务器中使用Hibernate的注意点
12.3.JDO12.3.1.建立PersistenceManagerFactory12.3.2.JdoTemplate和JdoDaoSupport 12.3.3.基于原生的JDO API实现DAO12.3.4.事务管理12.3.5.JdoDialect
12.4.Oracle TopLink12.4.1.SessionFactory 抽象层12.4.2.TopLinkTemplate 和 TopLinkDaoSupport 12.4.3.基于原生的TopLink API的DAO实现12.4.4.事务管理
12.5.iBATIS SQL Maps12.5.1.iBATIS 1.x和2.x的概览与区别12.5.2.iBATIS SQL Maps 1.x12.5.2.1.创建SqlMap12.5.2.2.使用 SqlMapTemplate 和 SqlMapDaoSupport
12.5.3.iBATIS SQL Maps 2.x12.5.3.1.创建SqlMapClient12.5.3.2.使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3.3.基于原生的iBATIS API的DAO实现
12.6.JPA12.6.1.在Spring环境中建立JPA12.6.1.1.LocalEntityManagerFactoryBean 12.6.1.2.LocalContainerEntityManagerFactoryBean 12.6.1.3.处理多个持久化单元
12.6.2.JpaTemplate 和 JpaDaoSupport 12.6.3.基于原生的JPA实现DAO12.6.4.异常转化12.6.5.事务管理12.6.6.JpaDialect
III.Web13.Web框架13.1.介绍13.1.1.与其他web框架的集成13.1.2.Spring Web MVC框架的特点
13.2.DispatcherServlet13.3.控制器13.3.1.AbstractController 和 WebContentGenerator13.3.2.其它的简单控制器13.3.3.MultiActionController13.3.4.命令控制器
13.4.处理器映射(handler mapping)13.4.1.BeanNameUrlHandlerMapping13.4.2.SimpleUrlHandlerMapping13.4.3.拦截器(HandlerInterceptor)
13.5.视图与视图解析13.5.1.视图解析器13.5.2.视图解析链13.5.3.重定向(Rediret)到另一个视图13.5.3.1.RedirectView13.5.3.2.redirect:前缀13.5.3.3.forward:前缀
13.6.本地化解析器13.6.1.AcceptHeaderLocaleResolver13.6.2.CookieLocaleResolver13.6.3.SessionLocaleResolver13.6.4.LocaleChangeInterceptor
13.7.使用主题13.7.1.简介13.7.2.如何定义主题13.7.3.主题解析器
13.8.Spring对分段文件上传(multipart file upload)的支持13.8.1.介绍13.8.2.使用MultipartResolver13.8.3.在表单中处理分段文件上传
13.9.使用Spring的表单标签库13.9.1.配置标签库13.9.2.form标签13.9.3.input标签13.9.4.checkbox标签13.9.5.radiobutton标签13.9.6.password标签13.9.7.select标签13.9.8.option标签13.9.9.options标签13.9.10.textarea标签13.9.11.hidden标签13.9.12.errors标签
13.10.处理异常13.11.惯例优先原则(convention over configuration)13.11.1.对控制器的支持: ControllerClassNameHandlerMapping13.11.2.对模型的支持:ModelMap (ModelAndView)13.11.3.对视图的支持: RequestToViewNameTranslator
13.12.其它资源
14.集成视图技术14.1.简介14.2.JSP和JSTL14.2.1.视图解析器14.2.2.‘Plain-old‘ JSPs versus JSTL ‘Plain-old‘ JSP与JSTL14.2.3.帮助简化开发的额外的标签
14.3.Tiles14.3.1.需要的资源14.3.2.如何集成Tiles14.3.2.1.InternalResourceViewResolver 14.3.2.2.ResourceBundleViewResolver
14.4.Velocity和FreeMarker14.4.1.需要的资源14.4.2.Context 配置14.4.3.创建模板14.4.4.高级配置14.4.4.1.velocity.properties14.4.4.2.FreeMarker
14.4.5.绑定支持和表单处理14.4.5.1.用于绑定的宏14.4.5.2.简单绑定14.4.5.3.表单输入生成宏14.4.5.4.重载HTML转码行为并使你的标签符合XHTML
14.5.XSLT14.5.1.写在段首14.5.1.1.Bean 定义14.5.1.2.标准MVC控制器代码14.5.1.3.把模型数据转化为XML14.5.1.4.定义视图属性14.5.1.5.文档转换
14.5.2.小结
14.6.文档视图(PDF/Excel)14.6.1.简介14.6.2.配置和安装14.6.2.1.文档视图定义14.6.2.2.Controller 代码14.6.2.3.Excel视图子类14.6.2.4.PDF视图子类
14.7.JasperReports14.7.1.依赖的资源14.7.2.配置14.7.2.1.配置ViewResolver14.7.2.2.配置View 14.7.2.3.关于报表文件14.7.2.4.使用 JasperReportsMultiFormatView
14.7.3.构造ModelAndView 14.7.4.使用子报表14.7.4.1.配置子报表文件14.7.4.2.配置子报表数据源
14.7.5.配置Exporter的参数
15.集成其它Web框架15.1.简介15.2.通用配置15.3.JavaServer Faces15.3.1.DelegatingVariableResolver15.3.2.FacesContextUtils
15.4.Struts15.4.1.ContextLoaderPlugin15.4.1.1.DelegatingRequestProcessor15.4.1.2.DelegatingActionProxy
15.4.2.ActionSupport 类
15.5.Tapestry15.5.1.注入 Spring 托管的 beans15.5.1.1.将 Spring Beans 注入到 Tapestry 页面中15.5.1.2.组件定义文件15.5.1.3.添加抽象访问方法15.5.1.4.将 Spring Beans 注入到 Tapestry 页面中 - Tapestry 4.0+ 风格
15.6.WebWork15.7.更多资源
16.Portlet MVC框架16.1.介绍16.1.1.控制器 - MVC中的C16.1.2.视图 - MVC中的V16.1.3.Web作用范围的Bean
16.2.DispatcherPortlet 16.3.ViewRendererServlet16.4.控制器16.4.1.AbstractController和PortletContentGenerator 16.4.2.其它简单的控制器16.4.3.Command控制器16.4.4.PortletWrappingController
16.5.处理器映射16.5.1.PortletModeHandlerMapping 16.5.2.ParameterHandlerMapping 16.5.3.PortletModeParameterHandlerMapping 16.5.4.增加 HandlerInterceptor16.5.5.HandlerInterceptorAdapter16.5.6.ParameterMappingInterceptor
16.6.视图和它们的解析16.7.Multipart文件上传支持16.7.1.使用PortletMultipartResolver 16.7.2.处理表单里的文件上传
16.8.异常处理16.9.Portlet应用的部署
IV.整合17.使用Spring进行远程访问与Web服务17.1.简介17.2.使用RMI暴露服务17.2.1.使用 RmiServiceExporter 暴露服务17.2.2.在客户端链接服务
17.3.使用Hessian或者Burlap通过HTTP远程调用服务17.3.1.为Hessian配置DispatcherServlet17.3.2.使用HessianServiceExporter暴露你的bean17.3.3.客户端连接服务17.3.4.使用Burlap17.3.5.对通过Hessian或Burlap暴露的服务使用HTTP基础认证
17.4.使用HTTP调用器暴露服务17.4.1.暴露服务对象17.4.2.在客户端连接服务
17.5.Web服务17.5.1.使用JAXI-RPC暴露服务17.5.2.访问Web服务17.5.3.注册bean映射17.5.4.注册自己的处理方法17.5.5.使用XFire来暴露Web服务
17.6.对远程接口不提供自动探测17.7.在选择这些技术时的一些考虑
18.Enterprise Java Bean(EJB)集成 18.1.简介18.2.访问EJB18.2.1.概念18.2.2.访问本地的无状态Session Bean(SLSB)18.2.3.访问远程SLSB
18.3.使用Spring提供的辅助类实现EJB组件
19.JMS19.1.简介19.2.使用Spring JMS19.2.1.JmsTemplate19.2.2.连接工厂19.2.3.(消息)目的地管理19.2.4.消息侦听容器19.2.4.1.SimpleMessageListenerContainer19.2.4.2.DefaultMessageListenerContainer19.2.4.3.ServerSessionMessageListenerContainer
19.2.5.事务管理
19.3.发送一条消息19.3.1.使用消息转换器19.3.2.SessionCallback 和ProducerCallback
19.4.接收消息19.4.1.同步接收19.4.2.异步接收 - 消息驱动的POJOs19.4.3.SessionAwareMessageListener 接口19.4.4.MessageListenerAdapter19.4.5.事务中的多方参与
20.JMX20.1.介绍20.2.输出bean到JMX20.2.1.创建一个MBeanServer20.2.2.复用现有的MBeanServer20.2.3.MBean的惰性初始化20.2.4.MBean的自动注册20.2.5.控制注册行为
20.3.控制bean的管理接口20.3.1.MBeanInfoAssembler 接口20.3.2.使用源码级元数据20.3.3.使用JDK 5.0注解20.3.4.源代码级的元数据类型20.3.5.接口AutodetectCapableMBeanInfoAssembler 20.3.6.用Java接口定义管理接口20.3.7.使用MethodNameBasedMBeanInfoAssembler
20.4.控制bean的 ObjectName 20.4.1.从Properties中读取ObjectName 20.4.2.使用 MetadataNamingStrategy
20.5.JSR-160连接器20.5.1.服务器端连接器20.5.2.客户端连接器20.5.3.基于Burlap/Hessian/SOAP的JMX
20.6.通过代理访问MBeans20.7.通知20.7.1.为通知注册监听器20.7.2.发布通知
20.8.更多资源
21.JCA CCI21.1.介绍21.2.配置CCI21.2.1.连接器配置21.2.2.在Spring中配置ConnectionFactory21.2.3.配置CCI连接21.2.4.使用一个 CCI 单连接
21.3.使用Spring的 CCI访问支持21.3.1.记录转换21.3.2.CciTemplate 类21.3.3.DAO支持21.3.4.自动输出记录生成 21.3.5.总结21.3.6.直接使用一个 CCI Connection 接口和Interaction接口21.3.7.CciTemplate 使用示例
21.4.建模CCI访问为操作对象21.4.1.MappingRecordOperation21.4.2.MappingCommAreaOperation21.4.3.自动输出记录生成21.4.4.总结21.4.5.MappingRecordOperation 使用示例21.4.6.MappingCommAreaOperation 使用示例
21.5.事务
22.Spring邮件抽象层22.1.简介22.2.Spring邮件抽象结构22.3.使用Spring邮件抽象22.3.1.可插拔的MailSender实现
22.4.使用 JavaMail MimeMessageHelper22.4.1.创建一条简单的MimeMessage,并且发送出去22.4.2.发送附件和嵌入式资源(inline resources)
23.Spring中的定时调度(Scheduling)和线程池(Thread Pooling)23.1.简介23.2.使用OpenSymphony Quartz 调度器23.2.1.使用JobDetailBean23.2.2.使用 MethodInvokingJobDetailFactoryBean23.2.3.使用triggers和SchedulerFactoryBean来包装任务
23.3.使用JDK Timer支持类23.3.1.创建定制的timers23.3.2.使用 MethodInvokingTimerTaskFactoryBean类23.3.3.打包:使用TimerFactoryBean来设置任务
23.4.SpringTaskExecutor抽象23.4.1.TaskExecutor接口23.4.2.何时使用TaskExecutor接口23.4.3.TaskExecutor类型23.4.4.使用TaskExecutor接口
24.动态语言支持24.1.介绍24.2.第一个例子24.3.定义动态语言支持的bean24.3.1.公共概念24.3.1.1. 元素24.3.1.2.Refreshable bean24.3.1.3.内置动态语言源文件24.3.1.4.理解dynamic-language-backed bean context的构造器注入
24.3.2.JRuby beans24.3.3.Groovy beans24.3.4.BeanShell beans
24.4.场景24.4.1.Spring MVC控制器脚本化24.4.2.Validator脚本化
24.5.更多的资源
25.注解和源代码级的元数据支持25.1.简介25.2.Spring的元数据支持25.3.注解25.3.1.@Required25.3.2.Spring中的其它@Annotations
25.4.集成Jakarta Commons Attributes25.5.元数据和Spring AOP自动代理25.5.1.基本原理25.5.2.声明式事务管理25.5.3.缓冲25.5.4.自定义元数据
25.6.使用属性来减少MVC web层配置25.7.元数据属性的其它用法25.8.增加对额外元数据API的支持
A.XML Schema-based configurationA.1.IntroductionA.2.XML Schema-based configurationA.2.1.Referencing the schemasA.2.2.The util schemaA.2.2.1.A.2.2.2.A.2.2.3.A.2.2.4.A.2.2.5.A.2.2.6.
A.2.3.The jee schemaA.2.3.1. (simple)A.2.3.2. (with single JNDI environment setting)A.2.3.3. (with multiple JNDI environment settings)A.2.3.4. (complex)A.2.3.5. (simple)A.2.3.6. (complex)A.2.3.7.
A.2.4.The lang schemaA.2.5.The tx (transaction) schemaA.2.6.The aop schemaA.2.7.The tool schemaA.2.8.The beans schema
A.3.Setting up your IDEA.3.1.Setting up EclipseA.3.2.Setting up IntelliJ IDEAA.3.3.Integration issuesA.3.3.1.XML parsing errors in the Resin v.3 application server
B.Extensible XML authoringB.1.IntroductionB.2.Authoring the schemaB.3.Coding a NamespaceHandlerB.4.Coding a BeanDefinitionParserB.5.Registering the handler and the schemaB.5.1.META-INF/spring.handlersB.5.2.META-INF/spring.schemas
C.spring-beans-2.0.dtdD.spring.tldD.1.IntroductionD.2.The bind tagD.3.The escapeBody tagD.4.The hasBindErrors tagD.5.The htmlEscape tagD.6.The message tagD.7.The nestedPath tagD.8.The theme tagD.9.The transform tag
E.spring-form.tldE.1.IntroductionE.2.The checkbox tagE.3.The errors tagE.4.The form tagE.5.The hidden tagE.6.The input tagE.7.The label tagE.8.The option tagE.9.The options tagE.10.The password tagE.11.The radiobutton tagE.12.The select tagE.13.The textarea tag
F.Spring 2.0 开发手册中文化项目F.1.声明F.2.致谢F.3.参与人员及任务分配F.4.Spring 2.0 正式版开发手册翻译说明F.5.项目历程F.5.1.Spring 2.0 RC2 开发手册翻译项目F.5.2.Spring 2.0 正式版开发手册翻译项目
Next
Sponsored by Interface21  前言