文件名称:开源框架 Spring Gossip
文件大小:799KB
文件格式:RAR
更新时间:2011-08-06 17:45:10
Spring
认识 Spring
来认识 Spring 的一些特性,并初步了解一下什么叫作 IoC?什么叫作 DI?
简介 Spring
Inversion of Control
Dependency Injection
核心容器
Spring 核心容器实作了 IoC,BeanFactory 与 ApplicationContext 的运用是了解 Spring 的重点所在。
管理 Bean
从第一个 Spring 应用程式开始,逐步了解何谓依赖注入,以及如何使用 Spring 的容器功能来管理 Bean,了解 Bean 在 Spring 容器中的生命周期。
第一个 Spring 程式
BeanFactory、 ApplicationContext
Type 2 IoC、Type 3 IoC
属性参考
自动绑定
集合物件注入
Bean 的生命周期
Bean 进阶管理
理想上对于 Bean 来说,它不需要意识到 Spring 容器的存在,然而有时候 Bean 仍必须知道有关于 Spring 容器或自己的一些讯息,而另一方面,您可能必须让容器对 Bean 进行一些额外处理。
不使用XML定义档进行 Bean设置
Aware 相关介面
BeanPostProcessor
BeanFactoryPostProcessor
PropertyPlaceholderConfigurer
PropertyOverrideConfigurer
CustomEditorConfigurer
讯息与事件
ApplicationContext 除了具备如 BeanFactory 基本的容器管理功能之外,并支援更多应用程式框架的特性,像是资源的取得、讯息解析、事件的处理与传播。
Resource 的取得
解析文字讯息
倾听事件
事件传播
AOP(Aspect-Oriented Programming)
在一个服务的流程中插入与服务无关的逻辑(例如Logging、Security),这样的逻辑称为 Cross-cutting concerns,将 Crossing-cutting concerns 独立出来为一个物件,这样的特殊物件称之为 Aspect,Aspect-oriented programming 着重在 Aspect 的设计及与应用程式的缝合(Weave)。
AOP 入门
AOP 的观念与术语都不是很直觉,可以先从代理机制(Spring 实现 AOP 的一种方式)来看看实际的例子,从而了解 AOP 的观念与各种术语。
从代理机制初探 AOP
动态代理
AOP 观念与术语
Spring AOP
Advices
Advices 包括了Aspect 的真正逻辑,由于缝合至Targets的时机不同,Spring 提供了几种不同的 Advices。
Before Advice
After Advice
Around Advice
Throw Advice
Pointcut、Advisor
Pointcut 定义了 Advice 的应用时机,在 Spring 中,使用 PointcutAdvisor 将 Pointcut 与 Advice 结合成为一个物件,Spring 中大部分内建的 Pointcut 都有对应的 PointcutAdvisor。
NameMatchMethodPointcutAdvisor
RegExpMethodPointcutAdvisor
ControlFlowPointcut
Pointcut 介面
Pointcut 交集、联集操作
Introduction
为特殊的 Advice,它影响的不是方法的流程,而是影响整个物件的行为,为物件动态 mixin 职责。
IntroductionInterceptor
DelegatingIntroductionInterceptor
Autoproxing
自动代理可以让您不用为每一个要被 Advised 的 Target 手动定义代理物件,透过 Bean 名称或是 Pointcut 的比对,自动为符合的 Target 建立代理物件。
BeanNameAutoProxyCreator
DefaultAdvisorAutoProxyCreator
持久层
来看看 Spring 的 IoC 容器与 AOP 框架如何应用于持久层,包括了资料库、交易等相关议题。
资料库存取
Spring 提供了 DAO 框架,让应用程式开发时无须耦合于特定资料库技术。
Spring 的 DAO 支持
DataSource 注入
DataSource 置换
JDBC 支援
Spring 在 JDBC 的使用上提供了几个类别,让您可以简化 JDBC 在使用时的流程。
使用 JdbcTemplate
JdbcTemplate 执行与更新
JdbcTemplate - 查询
以物件方式进行操作
DataFieldMaxValueIncrementer
交易管理
Spring 提供编程式的交易管理(Programmatic transaction management)与宣告式的交易管理(Declarative transaction management),为不同的交易实作提供了一致的编程模型。
Spring 对交易的支援
JDBC 编程式交易管理
JDBC 宣告式交易管理
交易的属性介绍
TransactionAttributeSource、 TransactionAttribute
Hibernate 支援
Spring 整合了对 Hibernate 的设定,并提供有 HibernateTemplate 等类别,让您在结合 Hibernate 时可以简化使用上的流程。
第一个 Hibernate 程式
SessionFactory 注入
HibernateTemplate
Hibernate 编程交易管理
Hibernate 宣告式交易管理
Web 层
Spring 提供了 MVC Web 框架,您可以善用 IoC 容器在依赖注入上的好处,另一方面,Spring 也致力于与其它的 Web 框架的整合。
Spring MVC 入门
从一个最简单的 Spring Web 应用程式,来看看 Spring MVC 框架的架构与 API 组成元素。
第一个 Spring MVC 程式
WebApplicationContext
Handler Mapping
Handler Interceptor
Controller 继承架构
ModelAndView
View Resolver
Exception Resolver
使用 Controller 相关类别
与其它 Web 框架的 Action 物件不同的是,Spring 提供了丰富的 Controller 相关类别,让您可以依需求来制作自己所需的 Controller 物件。
AbstractController
MultiActionController 与 ParameterMethodNameResolver
MultiActionController 与 PropertiesMethodNameResolver
ParameterizableViewController
AbstractCommandController
AbstractFormController
SimpleFormController
AbstractWizardFormController
ThrowawayController
搭配 Controller 的类别
介绍如何在 Controller上搭配使用验证器(Validator)、如何实作Command资料的型态转换,以及如何使用Spring的相关API来实作档案上传的功能。
实作 Validator
使用 PropertyEditor
档案上传
View层方案、Web框架整合
当使用JSP作为View层技术时,您可以结合JSTL以及Spring提供的标签,而除了JSP技术作为View层之外,Spring还提供了不同 View层技术的解决方案,您甚至可以定义自己的View层技术实现。
JSP View 层
当使用 JSP 作为 View 层技术时,您可以结合 JSTL 以及 Spring 提供的标签。
结合 JSTL
数据绑定的几个方法
其它 View 层
除了 JSP View 层技术之外,您还可以使用其它的 View 层技术,或建立自己的 View Class。
以 Tiles 为例
自订 View Class
与其它 Web 框架的整合
您可以将 Spring 与现在的一些 Web 框架结合在一起,重点都在于如何让 Web 框架意识到 Spring 的存在。
第一个 Struts 程式
在 Struts 中整合 Spring
第一个 JSF 程式
在 JSF 中整合 Spring
其它
Spring 提供了简化且一致的方式,让您在使用一些 API 或服务时更加简单。
远程(Remoting)
Spring 提供了一致的使用方式,即使所采用的远程服务技术不尽相同,在 Spring 中运用它们的方式却是一致的。
RMI
Hessian、 Burlap
Http Invoker
邮件
对于邮件发送服务的支援是由Spring的 org.springframework.mail.MailSender介面所定义,它有两个实作类别, org.springframework.mail.cos.CosMailSenderImpl与 org.springframework.mail.javamail.JavaMailSenderImpl。
简单邮件
HTML 邮件
内嵌图片或附档
排程
Spring则对 java.util.Timer提供了抽象封装,让您可以善用Spring的容器管理功能,而Spring对Quartz进行了封装,让它在使用上更加方便。
使用 TimerTask
使用 MethodInvokingTimerTaskFactoryBean
使用 Quartz
使用 MethodInvokingJobDetailFactoryBean