下面这部分摘抄自Spring In Action书的p4-p6---------------------------------
核心容器
图
1.1
的最底层是核心容器。
Spring
核心容器为
Spring
框架提供了基础功能。在这个模块中你会找到
BeanFactory
这个类,它是最基本的
Spring
容器和
Spring
的
DI
所依赖的基础。
从第
2
章开始,贯穿整本书,当遇到使用
DI
来装配
Bean
的时候,我们都会讨论核心模块
(
任何
Spring
应用的核心
)
。
Application Context(
上下文
)
模块
Spring
的应用上下文建立在核心容器之上。
BeanFactory
使
Spring
成为容器,而上下文使
Spring
成为框架。这个模块扩展了
BeanFactory
,添加了对
I18N(
国际化
)
、应用生命周期事件以及验证的支持。
另外,这个模块提供了很多企业级服务,如电子邮件服务、
JNDI
访问、
EJB
集成、远程调用以及定时服务,并且支持与模板框架
(
如
Velocity
和
FreeMarker)
的集成。
Spring
的
AOP
模块
在
AOP
模块中,
Spring
对面向切面编程提供了丰富的支持。这个模块是为
Spring
应用开发切面的基础。与
DI
一样,
AOP
支持应用对象之间的松耦合。利用
AOP
,应用程序所关心的与其应用的对象关系不大。
Spring
的
AOP
模块提供了多种方法来建立切面,包括基于
AOP Alliance
接口
(http://aopalliance.sf.net)
的切面的建立和对
AspectJ
的支持。第
4
章将深入讨论
Spring
的
AOP
支持。
JDBC
抽象及
DAO
模块
Spring
的
JDBC
和
DAO
模块把要写的样板代码抽象出来,让你的数据库代码变得简单明了,也可以避免因为释放数据库资源失败而引起的问题。这个模块还建立了一个容易理解的数据库异常层,它建立在各种数据库错误信息之上。以后就不用再去解释那些隐晦专有的
SQL
错误信息了。
另外,这个模块利用
Spring
的
AOP
模块为
Spring
应用中的对象提供事务管理服务。
在第
5
章中讨论
Spring
数据访问时,我们将看到
Spring
的基于模板的
JDBC
抽象层是如何简化
JDBC
代码的。
ORM
映射集成模块
Spring
为那些喜欢使用
ORM(Object-relational mapping)
工具的开发人员提供了
ORM
模块。
Spring
的
ORM
支持建立在
DAO
支持之上,并可以方便地构建适合几个
ORM
解决方案的
DAO
。
Spring
不想实现自己的
ORM
解决方案,但是它为许多流行的
ORM
框架做了钩子程序,包括
Hibernate
、
Java Persistence API
、
JDO
和
iBATIS SQL
映射。
Spring
的事务管理支持所有这些
ORM
框架以及
JDBC
。
Spring
除了提供基于模板的
JDBC
抽象,还提供了类似的
ORM
抽象和永久的框架,这些内容将在第
5
章讨论。
Java
管理扩展
(JMX)
如何方便地展现
Java
应用的内存工作流以便于管理,这是构建应用产品准备的关键部分。
Spring
的
JMX
模块可以方便地展现应用
Bean
,就像
JMX Mbeans
。这样一来,就可以监控和重新配置运行中的应用程序。
我们将在第
12
章详细讨论
Spring
的
JMX
支持。
Java EE
连接器
API(JCA)
企业级应用包括运行在不同服务器和平台上的应用。集成这些应用程序需要一些技巧。
Java EE
连接
API(
也称为
JCA)
提供了一种标准的方法来集成
Java
应用和多种企业信息系统,包括主框架和数据库。
JCA
很多方面与
JDBC
一样,唯一的区别是
JDBC
主要是针对数据库访问,而
JCA
更多是关注连接遗留系统的通用
API
。
Spring
对
JCA
的支持类似于其对
JDBC
的支持,提取出
JCA
的样本代码插入到模板中。
Spring MVC
框架
Spring
为
Web
应用提供了全功能的
MVC(Model/View?Controller)
框架,比如用户界面与应用逻辑是分离的。
Java
有很多类
MVC
框架可选择,例如
Apache Struts
、
JSF
、
WebWork
和
Tapestry
。
虽然
Spring
可以集成多种其他
MVC
框架,但是
Spring
也提供了自己的
MVC
框架,它改进了
Spring
在应用
Web
层的松耦合技术。
在第
13
章和第
14
章,我们将深入讨论
Spring MVC
。
Spring Portlet MVC
多数
Web
应用都是基于页面的――也就是说,每个对应用的请求都会实现一个完全新的页面。每个页面都呈现特定的信息或特定的表单来提示用户。基于
portlet
的应用在一个
Web
页面上聚集多个功能,这样在一个页面中一次就可以提供多个应用。
如果想创建基于
portlet
的应用,最好是利用
Spring
的
Portlet MVC
框架。
Spring Portlet MVC
建立在
Spring MVC
基础上,提供了一套控制器来支持
Java portlet API
。
Spring
的
Web
模块
当装载
Spring
应用上下文时,
Spring MVC
和
Spring Portlet MVC
需要一些特殊的考虑。
Spring
的
Web
模块提供了支持
Spring MVC
和
Spring Portlet MVC
的类。
Web
模块还提供了几个支持面向
Web
的任务,例如多部分文件上传和编程绑定到业务对象的请求参数。它还包含了对
Apache Struts
和
Java Server Faces(JSF)
的集成支持。
远程调用
所有应用都不是孤立的。通常,一个应用必须利用另一个应用的某些功能。当通过网络来访问其他应用时,某些形式的远程调用将被用于通讯。
Spring
的远程调用允许将
Java
对象的某些功能展现为远程对象。如果需要远程访问对象,远程调用模块会使编写远程对象很简单,就像它们是本地
POJO
一样。有一些远程调用选项,包括
RMI(Remote Method Invocation
,远程方法调用
)
、
Hessian
、
Burlap
、
JAX-RPC
和
Spring
自己的
HTTP Invoker
。
在第
8
章中,我们将详细讨论
Spring
中的多种远程调用选项。
Java
消息服务
(JMS)
远程调用是邓决于网络可靠性和通讯双方的可用性。基于消息的通讯是可靠的,并且即使在网络和端点不可用时,可以保证消息的传递。
Spring
的
Java
消息服务
(Java Message Service)
模块可以将消息发送到
JMS
队列和主题。同时,这个模块还能帮助创建消息驱动的
POJO
,它能够处理异步消息。在第
10
章,我们将详细讨论
Spring
的消息发送机制。
虽然
Spring
包括很多内容,但是最重要的是要认识到
Spring
尽可能避免了重新开发所有事情。
Spring
倾向于保留现有的
API
和框架。
上面这部分摘抄自Spring In Action书的p4-p6---------------------------------
第一章
开始
Spring
之旅
-
DI
的作用是将程序解耦。程序
A
在调用程序
B/C
时,不需要知道
B/C
是如何来的,只需要按照接口定义使用即可。
PS
:之前的
service+
简单工厂方法也可达到这个效果。但
spring
可在
XML
中配置。
-
AOP
的信用有点类似代理模式。
AOP
可以在类
A
不知情的情况下,为
A
增加新的功能。与代理模式不同,
AOP
是在
XML
中配置的。
第二章 基本Bean装配
- Spring的容器有多种容器实现。分两类:1、Bean工厂;2、应用上下文。Bean工厂简单,提供了基础的依赖注入支持。应用上下文则比Bean工厂更高级。
- 提供文本信息解析工具,包括对国际化支持。
- 提供载入文件资源的通用法。
- 可向注册为监听器的Bean发送事件。
- Bean有自动装配属性功能、awtowire、可以byName、byType…..但这会导致XML文件的可续性降低。
- 关于Bean的范围,请参考下表。
范围 |
完成任务 |
singleton |
定义Bean的范围为每个Spring容器一个实例(默认值) |
prototype |
允许Bean可以被多次实例化(使用一次就创建一个实例) |
request |
定义Bean的范围是HTTP请求。只有在使用有Web能力的Spring上下文(例如Spring MVC)时才有效 |
session |
定义Bean的范围是HTTP会话。只有在使用有Web能力的Spring上下文(例如Spring MVC)时才有效 |
global-session |
定义Bean的范围是全局HTTP会话。只有在portlet上下文中才有效 |
第三章 高级Bean装配(跳过)
第四章 通知Bean
- AOP述语包括①通知(AOP切面的功能和切面执行任务的时机);②连接点、(AOP涉足其它对象的切入点);③切入点(对象的被介入的具体地方);④切面=通知+切入点;⑤引入(可为现有Bean)引入另一个类的某个方法;⑥目标(AOP要介入的对象);⑦代理(user通过代理来调用目标);⑧织入(将目标与代理连接起来的过程)
为了更好的了解AOP的这些名词,借助书本上的例子来帮助记忆。例子是电厂派抄表工查某一片区用户的用电情况。如下图:
- 目前的AOP框架有3个:
- AspectJ(可以对属性和构造 数的切入) (推荐使用的)
- JBoss AOP
- Spring AOP
- Spring生成被代理类的方法有两种:
- 如果目标类实现了一个接口、则使用java.lang.reflect.proxy类来为目标类织入通知(优先)
- 如果是普通类、则通过生成它的子类、达到代理的目的;(参代理模式)
前面的方法设置麻烦,且对被代理的Bean(切入点所处的Bean)要求高(需花实现指定的Proxy Factory Beam).于是导致了自动代理的出现。
自动代理中、Java1.5以后的版本,有“自动代理@Aspect J切面:简单易用、对被代理的Beam没有入侵。将切面加在一个切面类和配置中(caop:conf:g>)。详细方法这里不说了。
分享到:
相关推荐
Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................
恭喜你,环境搭建配置成功,接下来第二章,将讲述基于接口的操作方式,增删改查。 整个工程目录结构如下: 除非申明,文章均为一号门原创,转载请注明本文地址,谢谢! mybatis实战教程(mybatis in action)之二:以...
#### 三、第二个ESB应用Hello World Action - **重点**:介绍如何使用Action组件处理消息。 - **实现**:在原有的基础上,增加对消息的处理逻辑,例如修改消息内容或执行特定业务逻辑。 #### 四、第三个ESB应用...
`BeanNameUrlHandlerMapping`是根据请求URL(如`/productList.action`)匹配Spring容器中的bean名称。 ##### 5. 处理器适配器配置示例 ```xml <bean class="org.springframework.web.servlet.mvc....
如果追求简洁性和易维护性,则建议采用第二种方式。 3. **依赖版本的一致性**:确保使用的各个框架版本兼容,避免版本冲突导致的问题。 综上所述,通过合理地配置和整合这些框架,可以极大地提高Web应用的开发效率...
- 允许使用 POJO (Plain Old Java Object) 作为 Action 类,使得 Action 更易于测试。 - 支持多种视图技术,如 JSP、FreeMarker、Velocity 等。 - 基于 Spring AOP 思想的拦截器机制,易于扩展和定制。 - 强大的...
### Struts2框架学习笔记整理 #### 一、Struts2框架概述 ##### 1.1 Struts2框架定义 Struts2是一个基于MVC(Model-View-Controller)架构模式的开源Java web应用框架,它能够帮助开发者构建可扩展且易于维护的...
### WebWork学习笔记知识点 #### 一、WebWork框架简介 - **定义**: WebWork是一个由OpenSymphony组织开发的MVC(Model-View-Controller)框架,专注于组件化和代码重用,适用于J2EE应用程序开发。 - **最新版本**:...
##### 第二章 基础语法 - **变量与数据类型** - Java中的基本数据类型包括整型、浮点型、字符型等。 - 变量声明、初始化和使用。 - **流程控制** - 条件语句(如if-else)、循环语句(如for、while)等。 - 如何使用...
### SSH框架整合笔记 #### 一、Hibernate工作原理及为何使用 **原理:** 1. **读取并解析配置文件**:首先加载`hibernate.cfg.xml`等配置文件,这些文件包含了数据库连接信息以及一些核心配置选项。 2. **读取并...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
自己整理的一些资料,不需要积分,希望对大家有帮助。 里面包有如下的一些java资料 Ant使用指南.pdf ...Java数据结构和算法中文第二版.pdf Java网络高级编程.pdf jsp高级运用 spring2中文开发参考手册.chm a.txt
【小项目第五部分】是一个基于SSH(Struts2、Hibernate、Spring)框架的学习项目,适合初学者和有经验的开发者进行框架实践。SSH是Java Web开发中常用的三大框架,它们分别负责视图层、持久层和业务层的管理。这个...