Spring - Java/J2EE Application Framework

来源:百度文库 编辑:神马文学网 时间:2024/04/29 17:30:45
Spring Framework 开发参考手册
Spring 中文论坛
Version 1.1
Spring 参考手册由众多Spring爱好者共同协作完成.本文档的翻译是在网络上协作进行, 也会不断根据Spring文档的升级进行逐步更新 -在线文档 提供此文档的目的是为了减缓学习Spring 的曲线,更好的让优秀的技术扩大在中文世界的使用。 该文档并非可以代替原文档使用,我们建议所有有能力的读者都直接阅读英文原文。
如果您对翻译有所异议,请反馈给Spring中文论坛[http://spring.jactiongroup.net]
项目控制:https://jactiongroup2.dev.java.net
(Public Review)
目录
前言1. 简介1.1. 概览1.2. 使用场景
2. 项目背景2.1. 反向控制(IoC)/依赖注入
3. Beans, BeanFactory和ApplicationContext3.1. 简介3.2. BeanFactory 和 BeanDefinitions - 基础3.2.1. BeanFactory3.2.2. BeanDefinition3.2.3. bean的类3.2.3.1. 通过构造函数创建bean 3.2.3.2. 通过静态工厂方法创建Bean3.2.3.3. 通过实例工厂方法创建bean
3.2.4. Bean的标志符 (id与name)3.2.5. Singleton的使用与否
3.3. 属性,合作者,自动装配和依赖检查3.3.1. 设置bean的属性和合作者3.3.2. 深入Bean属性和构造函数参数3.3.3. 方法注入3.3.3.1. Lookup方法注入3.3.3.2. 任意方法的替换
3.3.4. 使用 depends-on3.3.5. 自动装配协作对象3.3.6. 依赖检查
3.4. 自定义bean的本质特征3.4.1. 生命周期接口3.4.1.1. InitializingBean / init-method3.4.1.2. DisposableBean / destroy-method
3.4.2. 了解自己3.4.2.1. BeanFactoryAware3.4.2.2. BeanNameAware
3.4.3. FactoryBean
3.5. 子bean定义3.6. BeanFactory之间的交互3.6.1. 获得一个FactoryBean而不是它生成的bean
3.7. 使用BeanPostprocessors定制bean3.8. 使用BeanFactoryPostprocessors定制bean工厂3.8.1. PropertyPlaceholderConfigurer3.8.2. PropertyOverrideConfigurer
3.9. 注册附加的定制PropertyEditor3.10. 介绍ApplicationContext3.11. ApplicationContext中增加的功能3.11.1. 使用MessageSource3.11.2. 事件传递3.11.3. 在Spring中使用资源
3.12. 在ApplicationContext中定制行为3.12.1. ApplicationContextAware标记接口3.12.2. BeanPostProcessor3.12.3. BeanFactoryPostProcessor3.12.4. PropertyPlaceholderConfigurer
3.13. 注册附加的定制PropertyEditors3.14. 用方法调用的返回值来设置bean的属性3.15. 从一个web应用创建ApplicationContext3.16. 粘合代码和罪恶的singleton3.16.1. 使用SingletonBeanFactoryLocator和ContextSingletonBeanFactoryLocator
4. 属性编辑器,数据绑定,校验与BeanWeapper(Bean封装)4.1. 简介4.2. 使用DataBinder进行数据绑定 4.3. Bean处理与BeanWrapper4.3.1. 设置和提取属性以及嵌套属性4.3.2. 内建的(PropertyEditors)和类型转换 4.3.3. 其他特性
5. Spring AOP: Spring之面向方面编程5.1. 概念5.1.1. AOP概念5.1.2. Spring AOP的功能5.1.3. Spring中AOP代理
5.2. Spring的切入点5.2.1. 概念5.2.2. 切入点的运算5.2.3. 实用切入点实现5.2.3.1. 静态切入点5.2.3.2. 动态切入点
5.2.4. 切入点超类5.2.5. 自定义切入点
5.3. Spring的通知类型5.3.1. 通知的生命周期5.3.2. Spring中通知类型5.3.2.1. Interception around advice5.3.2.2. Before通知5.3.2.3. Throws通知5.3.2.4. After Returning通知5.3.2.5. Introduction通知
5.4. Spring中的advisor 5.5. 用ProxyFactoryBean创建AOP代理5.5.1. 基本概要5.5.2. JavaBean的属性5.5.3. 代理接口5.5.4. 代理类
5.6. 便利的代理创建方式5.6.1. TransactionProxyFactoryBean5.6.2. EJB 代理
5.7. 使用ProxyFactory以编程的方式创建AOP代理5.8. 操作被通知对象5.9. 使用“autoproxy”功能5.9.1. 自动代理的bean定义5.9.1.1. BeanNameAutoProxyCreator5.9.1.2. DefaultAdvisorAutoProxyCreator5.9.1.3. AbstractAdvisorAutoProxyCreator
5.9.2. 使用元数据驱动的自动代理
5.10. 使用TargetSources5.10.1. 可热交换的目标源5.10.2. 支持池的目标源5.10.3. Prototype目标源
5.11. 定义新的通知类型5.12. 进一步的资料和资源5.13. 路标
6. 集成AspectJ 6.1. 概述6.2. 使用Spring IoC配置AspectJ6.2.1. “单例”aspect6.2.1.1. 举例6.2.1.2. 排序问题
6.2.2. 非单例aspect6.2.3. 3.4 转向(Gotchas)
6.3. 使用AspectJ切点定位Spring的建议6.4. Spring提供给AspectJ的aspect
7. 事务管理7.1. Spring事务抽象7.2. 事务策略7.3. 编程式事务管理7.3.1. 使用TransactionTemplate7.3.2. 使用PlatformTransactionManager
7.4. 声明式事务管理7.4.1. BeanNameAutoProxyCreator,另一种声明方式
7.5. 编程式还是声明式事务管理7.6. 你需要应用服务器管理事务吗?7.7. 公共问题
8. 源代码级的元数据支持8.1. 源代码级的元数据8.2. Spring的元数据支持8.3. 集成Jakarta Commons Attributes8.4. 元数据和Spring AOP自动代理8.4.1. 基础8.4.2. 声明式事务管理8.4.3. 缓冲池技术8.4.4. 自定义的元数据
8.5. 使用attribute尽可能减少MVC web层配置8.6. 元数据attribute的其它使用8.7. 增加对其它的元数据API的支持
9. DAO支持9.1. 简介9.2. 一致的异常层次9.3. 一致的DAO支持抽象类
10. 使用JDBC进行数据访问10.1. 简介10.2. 使用JDBC核心类控制基本的JDBC处理和错误处理10.2.1. JdbcTemplate10.2.2. 数据源10.2.3. SQLExceptionTranslator10.2.4. 执行Statement10.2.5. 执行查询10.2.6. 更新数据库
10.3. 控制如何连接数据库10.3.1. DataSourceUtils10.3.2. SmartDataSource10.3.3. AbstractDataSource10.3.4. SingleConnectionDataSource10.3.5. DriverManagerDataSource10.3.6. DataSourceTransactionManager
10.4. JDBC操作的Java对象化10.4.1. SqlQuery10.4.2. MappingSqlQuery10.4.3. SqlUpdate10.4.4. StoredProcedure10.4.5. SqlFunction
11. 使用ORM工具进行数据访问 11.1. 简介11.2. Hibernate11.2.1. 资源管理 11.2.2. 在 Application Context中的Bean 声明11.2.3. 反向控制: 模板和回调的使用11.2.4. 利用AOP拦截器(Interceptor)取代Template 11.2.5. 编程式的事务划分11.2.6. 声明式的事务划分11.2.7. 事务管理策略 11.2.8. 使用Spring管理的应用Bean11.2.9. 容器资源 vs 本地资源11.2.10. 举例
11.3. JDO11.4. iBATIS11.4.1. 1.3.x和2.0的概览和区别11.4.2. 创建SqlMap 11.4.3. 使用 SqlMapDaoSupport11.4.4. 事务管理
12. Web框架12.1. Web框架介绍12.1.1. MVC实现的可扩展性12.1.2. Spring MVC框架的特点
12.2. 分发器(DispatcherServlet)12.3. 控制器12.3.1. AbstractController 和 WebContentGenerator12.3.2. 其它的简单控制器12.3.3. MultiActionController12.3.4. 命令控制器
12.4. 处理器映射12.4.1. BeanNameUrlHandlerMapping12.4.2. SimpleUrlHandlerMapping12.4.3. 添加HandlerInterceptors
12.5. 视图与视图解析12.5.1. ViewResolvers
12.6. 使用本地化信息12.6.1. AcceptHeaderLocaleResolver12.6.2. CookieLocaleResolver12.6.3. SessionLocaleResolver12.6.4. LocaleChangeInterceptor
12.7. 主题使用12.8. Spring对multipart(文件上传)的支持12.8.1. 介绍12.8.2. 使用MultipartResolver12.8.3. 在一个表单中处理multipart
12.9. 处理异常12.10. 共同用到的工具12.10.1. 关于pathmatcher的小故事
13. 集成表现层13.1. 简介13.2. 和JSP & JSTL一起使用Spring13.2.1. 视图解析器13.2.2. 普通JSP页面和JSTL13.2.3. 其他有助于开发的标签
13.3. Tiles的使用13.3.1. 所需的库文件13.3.2. 如何集成Tiles13.3.2.1. InternalResourceViewResolver 13.3.2.2. ResourceBundleViewResolver
13.4. Velocity13.4.1. 所需的库文件13.4.2. 分发器(Dispatcher Servlet)上下文13.4.3. Velocity.properties13.4.3.1. 模版位置13.4.3.2. velocity.properties示例13.4.3.3. Web应用的根目录标记13.4.3.4. 另一种可选的属性规范13.4.3.5. 缺省配置(文件资源载入)
13.4.4. 视图配置13.4.5. 创建Velocity模版13.4.6. 表单处理13.4.6.1. 验证错误13.4.6.2. Velocity的宏13.4.6.3. 将出错消息和HTML的域关联起来
13.4.7. 总结
13.5. XSLT视图13.5.1. My First Words13.5.1.1. Bean的定义13.5.1.2. 标准MVC控制器代码13.5.1.3. 把模型数据转换成XML文档13.5.1.4. 定义视图属性13.5.1.5. 文档转换
13.5.2. 总结
13.6. 文档视图 (PDF/Excel)13.6.1. 简介13.6.2. 配置和安装13.6.2.1. 文档视图定义13.6.2.2. 控制器代码13.6.2.3. 用于Excel视图的视图子类化13.6.2.4. 用于PDF视图的视图子类化
13.7. Tapestry13.7.1. 架构13.7.2. 实现13.7.2.1. 应用上下文示例13.7.2.2. 在Tapestry页面中获取bean13.7.2.3. 向Tapestry暴露应用上下文13.7.2.4. 组件定义文件13.7.2.5. 添加抽象访问方法
13.7.3. 小结
14. JMS支持14.1. 介绍14.2. 域的统一14.3. JmsTemplate14.3.1. ConnectionFactory14.3.2. 事务管理14.3.3. Destination管理
14.4. 使用JmsTemplate14.4.1. 发送消息14.4.2. 同步接收14.4.3. 使用消息转换器14.4.4. SessionCallback和ProducerCallback
15. EJB的存取和实现15.1. 访问EJB15.1.1. 概念15.1.2. 访问本地的无状态Session Bean(SLSB)15.1.3. 访问远程的无状态Session Bean(SLSB)
15.2. 使用Spring提供的辅助类实现EJB组件
16. 通过Spring使用远程访问和web服务16.1. 简介16.2. 使用RMI提供业务16.2.1. 使用RmiServiceExporter提供业务16.2.2. 客户端连接业务
16.3. 使用Hessian或Burlap通过HTTP远程调用业务16.3.1. 为Hessian建立DispatcherServlet16.3.2. 使用HessianServiceExporter提供你的bean16.3.3. 客户端连接业务16.3.4. 使用Burlap16.3.5. 在通过Hessian或Burlap输出的业务中应用HTTP基本认证
16.4. 使用HTTP调用器输出业务16.4.1. 输出业务对象16.4.2. 在客户端连接业务
16.5. 在选择这些技术时的一些考虑
17. 使用Spring邮件抽象层发送Email17.1. 简介17.2. Spring邮件抽象结构17.3. 使用Spring邮件抽象17.3.1. 可插拔的MailSender实现
18. 使用Quartz或Timer完成时序调度工作18.1. 简介18.2. 使用OpenSymphony Quartz Scheduler18.2.1. 使用JobDetailBean18.2.2. 使用MethodInvokingJobDetailFactoryBean18.2.3. 使用triggers和SchedulerFactoryBean来包装任务
18.3. 使用JDK Timer支持类18.3.1. 创建定制的timers18.3.2. 使用MethodInvokingTimerTaskFactoryBean18.3.3. 包装:使用TimerFactoryBean来建立tasks
A. Spring‘s beans.dtdB. 结束语B.1. 项目手记B.2. 版权声明B.3. 翻译团队B.4. 项目进度