Spring
是由 Rod Johnson 撰写,并在其著作 Expert One-on-One: J2EE Design and Development
中有提到过,它是个轻量级(Lightweight)容器(Container)、实现 IoC(Inversion of
Control)、AOP(Aspect-oriented
programming)概念,是一个全方位的应用程式(Application)框架(Framework),可协助建立以往在 EJB
下才有可能建立的一些应用程式。
从第一个
Spring
应用程式开始,逐步了解何谓依赖注入,以及如何使用 Spring 的容器功能来管理 Bean,了解 Bean 在 Spring 容器中的生命周期。
理想上对于
Bean 来说,它不需要意识到
Spring 容器的存在,然而有时候 Bean 仍必须知道有关于 Spring 容器或自己的一些讯息,而另一方面,您可能必须让容器对 Bean
进行一些额外处理。
ApplicationContext
除了具备如
BeanFactory 基本的容器管理功能之外,并支援更多应用程式框架的特性,像是资源的取得、讯息解析、事件的处理与传播。
AOP
的观念与术语都不是很直觉,可以先从代理机制(Spring 实现 AOP 的一种方式)来看看实际的例子,从而了解 AOP 的观念与各种术语。
Advices
包括了Aspect
的真正逻辑,由于缝合至Targets的时机不同,Spring 提供了几种不同的 Advices。
Pointcut
定义了 Advice
的应用时机,在 Spring 中,使用 PointcutAdvisor 将 Pointcut 与 Advice 结合成为一个物件,Spring
中大部分内建的 Pointcut
都有对应的 PointcutAdvisor。
为特殊的
Advice,它影响的不是方法的流程,而是影响整个物件的行为,为物件动态 mixin 职责。
自动代理可以让您
不用为每一个要被 Advised 的
Target 手动定义代理物件,透过 Bean 名称或是 Pointcut 的比对,自动为符合的 Target 建立代理物件。
Spring
提供了 DAO
框架,让应用程式开发时无须耦合于特定资料库技术。
Spring
在 JDBC
的使用上提供了几个类别,让您可以简化 JDBC 在使用时的流程。
Spring
提供编程式的交易管理(Programmatic transaction management)与宣告式的交易管理(Declarative
transaction management),为不同的交易实作提供了一致的编程模型。
Spring
整合了对 Hibernate
的设定,并提供有 HibernateTemplate 等类别,让您在结合 Hibernate 时可以简化使用上的流程。
从一个最简单的
Spring Web
应用程式,来看看 Spring MVC 框架的架构与 API 组成元素。
与其它 Web
框架的 Action
物件不同的是,Spring 提供了丰富的 Controller 相关类别,让您可以依需求来制作自己所需的 Controller 物件。
介绍如何在
Controller上搭配使用验证器(Validator)、如何实作Command资料的型态转换,以及如何使用Spring的相关API来实作档案
上传的功能。
当使用 JSP
作为 View 层技术时,您可以结合
JSTL 以及 Spring 提供的标签。
除了 JSP
View
层技术之外,您还可以使用其它的 View 层技术,或建立自己的 View Class。
您可以将
Spring 与现在的一些 Web
框架结合在一起,重点都在于如何让 Web 框架意识到 Spring 的存在。
Spring
提供了一致的使用方式,即使所采用的远程服务技术不尽相同,在 Spring 中运用它们的方式却是一致的。
对于邮件发送服务
的支援是由Spring的
org.springframework.mail.MailSender介面所定义,它有两个实作类别,
org.springframework.mail.cos.CosMailSenderImpl与
org.springframework.mail.javamail.JavaMailSenderImpl。
Spring则对
java.util.Timer提供了抽象封装,让您可以善用Spring的容器管理功能,而Spring对Quartz进行了封装,让它在使用上更加方
便。
|
|