Spring学习的书-夏昕(1)

http://www.xiaxin.net/Spring_Dev_Guide.rar

据说很好,先去学习学习。

 

部分文摘:

最大的优势在于:Spring是一个从实际项目开发经验中抽取的,可高度重用的应用框架。

 

Spring 基础语义:

1. 控制反转(IoC = Inversion of Control)

IoC,用白话来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也
就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。

 

2. 依赖注入(DI = Dependency Injection)

所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关
系注入到组件之中。

 

3. Spring Bean封装机制
Spring 从核心而言,是一个DI 容器,其设计哲学是提供一种无侵入式的高扩展性框架。即无需代
码中涉及Spring专有类,即可将其纳入Spring容器进行管理。

org.springframework.beans包中包括了这些核心组件的实现类,核心中的核心为BeanWrapper
和BeanFactory类

 

4. Bean Wrapper

通过BeanWrapper,我们可以无需在编码时就指定JavaBean的实现类和属性值,通过在配置文件
加以设定,就可以在运行期动态创建对象并设定其属性(依赖关系)。

 

5. Bean Factory

Bean Factory,顾名思义,负责创建并维护Bean实例。

 

BeanWrapper实现了针对单个Bean的属性设
定操作。而BeanFactory则是针对多个Bean的管理容器,根据给定的配置文件,BeanFactory从中读取
类名、属性名/值,然后通过Reflection机制进行Bean加载和属性设定。

 

6.singleton
指定此Java Bean是否采用单例(Singleton)模式,如果设为“true”,则在
BeanFactory作用范围内,只维护此Java Bean的一个实例,代码通过BeanFactory
获得此Java Bean实例的引用。反之,如果设为“false”,则通过BeanFactory获取
此Java Bean实例时,BeanFactory每次都将创建一个新的实例返回。

 

7.ApplicationContext

BeanFactory提供了针对Java Bean的管理功能,而ApplicationContext提供了一个更为框架化的
实现(从上面的示例中可以看出,BeanFactory的使用方式更加类似一个API,而非Framework style)。
ApplicationContext覆盖了BeanFactory的所有功能,并提供了更多的特性。此外,
ApplicationContext为与现有应用框架相整合,提供了更为开放式的实现(如对于Web应用,我们可以在
web.xml中对ApplicationContext进行配置)。
相对BeanFactory而言,ApplicationContext提供了以下扩展功能:
1. 国际化支持
我们可以在Beans.xml文件中,对程序中的语言信息(如提示信息)进行定义,将程序中的提示
信息抽取到配置文件中加以定义,为我们进行应用的各语言版本转换提供了极大的灵活性。
2. 资源访问
支持对文件和URL的访问。
3. 事件传播
事件传播特性为系统中状态改变时的检测提供了良好支持。
4. 多实例加载
可以在同一个应用中加载多个Context实例。

 

8.Web Context   /p28

ApplicationContext均通过编码加载。对于Web应用,Spring提供了可配置的
ApplicationContext加载机制.

 

Spring 高级特性

 

1.Web 应用与MVC

 

     目前比较好的MVC,老牌的有Struts、Webwork。新兴的MVC 框架有Spring MVC、
Tapestry、JSF等。这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,
如Dinamica、VRaptor等。

 

     从实际Web产品研发的角度而言(而非纯粹设计上,扩展性上,以及支持特性上的比较),
目前Struts 也许是第一选择。作为一个老牌MVC Framework,Struts 拥有成熟的设计,
同时,也拥有最丰富的信息资源和开发群体。换句实在点的话,产品基于Struts 构建,如果
公司发生人事变动,那么,找个熟悉Struts的替代程序员成本最低。
     从较偏向设计的角度出发,WebWork2 的设计理念更加先进,其代码与Servlet API 相
分离,这使得单元测试更加便利,同时系统从BS结构转向CS接口也较为简单。另外,对于基
于模板的表现层技术(Velocity、Freemarker和XSLT)的支持,也为程序员提供了除JSP
之外的更多的选择(Struts也支持基于模板的表现层技术,只是实际中不太常用)。
     而对于Spring而言,首先,它提供了一个相当灵活和可扩展的MVC实现,与WebWork2
相比,它在依赖注入方面、AOP 等方面更加优秀,但在MVC 框架与底层构架的分离上又与
Webworks 存在着一定差距(Spring 的MVC 与Servlet API 相耦合,难于脱离Servlet
容器独立运行,在这点的扩展性上,比Webwork2稍逊一筹)。

 

     我们还要注意到,Spring对于Web应用开发的支持,并非只限于框架中的MVC部分。即
使不使用其中的MVC实现,我们也可以从其他组件,如事务控制、ORM模板中得益。同时,Spring
也为其他框架提供了良好的支持,如我们很容易就可以将Struts 与Spring 甚至WebWork
与Spring 搭配使用(与WebWork 的搭配可能有些尴尬,因为两者相互覆盖的内容较多,如
WebWork中的依赖注入机制、AOP机制等与Spring中的实现相重叠)。因此,对于Spring
在Web应用中的作用,应该从一个更全面的角度出发。

 

 

 

--作为我是一个接触web开发的新手而言,写得很好,对基础概念解释的也很清楚,真的很实用。还没看完,

继续。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值