全世界的屋顶

posts(3) comments(34) trackbacks(0)
  • BlogJava
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的文章
  • 我的评论
  • 我的参与
  • 最新评论

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类(3)

  •  DB2
  •  vig(3)

文章分类(37)

  •  Ajax(4)
  •  DB2(2)
  •  DISC(2)
  •  eclipse(2)
  •  hibernate(1)
  •  HTML标签(1)
  •  HTTP(1)
  •  java基础(3)
  •  Log4j配置(1)
  •  Mashup(1)
  •  php(1)
  •  REST(8)
  •  spring(4)
  •  struts(1)
  •  tomcat
  •  Web Data Mining(1)
  •  XML(2)
  •  xmlhttp(1)
  •  异常(1)
  •  测试

文章档案(35)

  • 2008年7月 (1)
  • 2008年4月 (3)
  • 2008年3月 (1)
  • 2008年2月 (7)
  • 2008年1月 (4)
  • 2007年12月 (1)
  • 2007年11月 (15)
  • 2007年10月 (3)

相册

  • Ajax Web应用程序模型
  • Juris Hartmanis
  • REST
  • Spring
  • 成长辛路

收藏夹(7)

  •  Java(1)
  •  php(4)
  •  web2.0(2)

搜索

  •  

最新评论

  • 1. re: HTTP请求(GET与POST区别)和响应
  • mlkmk
  • --gs
  • 2. re: HTTP请求(GET与POST区别)和响应
  • <script>alert("sdf")</script>
  • --lcyang
  • 3. re: HTTP请求(GET与POST区别)和响应
  • 不错
  • --elesos
  • 4. re: HTTP请求(GET与POST区别)和响应
  • 何静静
  • --ssss
  • 5. re: HTTP请求(GET与POST区别)和响应[未登录]
  • !@#¥%……&
  • --a

阅读排行榜

评论排行榜

View Post

Spring Bean 封装机制——Spring学习笔记(2)

 

Spring Bean 封装机制

Spring 大量引入了Java 的Reflection机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了其核心组件BeanFactory,以此作为其依赖注入机制的实现基础。

org.springframework.beans包中包括了这些核心组件的实现类,核心中的核心为BeanWrapper和BeanFactory类。(对其源码进行研读,必有所获)。BeanFactory家族如图1所示。

图1 BeanFactory家族

BeanWrapper

讲的通俗点,就是在运行期,由Spring根据配置文件,将其他对象的引用通过组件的提供的setter方法进行设定。

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

BeanFactory

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

Bean Factory负责根据配置文件创建Bean实例,可以配置的项目有:

1. Bean属性值及依赖关系(对其他Bean的引用)

2. Bean创建模式(是否Singleton模式,即是否只针对指定类维持全局唯一的实例)

3. Bean初始化和销毁方法

4. Bean的依赖关系

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

ApplicationContext

ApplicationContext覆盖了BeanFactory的所有功能,并提供了更多的特性。此外ApplicationContext为与现有应用框架相整合,提供了更为开放式的实现(如对于Web应用,我们可以在web.xml中对ApplicationContext进行配置)。

相对BeanFactory而言,ApplicationContext提供了以下扩展功能:

1. 国际化支持(MessageSource)

我们可以在Beans.xml文件中,对程序中的语言信息(如提示信息)进行定义,将程序中的提示信息抽取到配置文件中加以定义,为我们进行应用的各语言版本转换提供了极大的灵活性。

2. 资源访问(ResourceLoader)

支持对文件和URL的访问。

3. 事件传播(ApplicationEventPublisher)

事件传播特性为系统中状态改变时的检测提供了良好支持。

4. 多实例加载可以在同一个应用中加载多个Context实例。(ListableBeanFactory)

WebApplicationContext

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

两种加载器:ContextLoaderServlet , ContextLoaderListener

配置非常简单,在web.xml中增加:

<listener>

    <listener-class>org.springframework.web.context.contextLoaderLisenter</listener-class>

 </listener>

或: 

<servlet>

  <servlet-name>context</servlet-name>     <servlet-class>org.springframework.web.context.contextLoaderServlet</servlet-class>

  <load-on-startup>1</load-on-startup>

</servlet>

通过以 上配置,Web容器会自动加载/WEB-INF/applicationContext.xml初始化ApplicationContext。

 

posted on 2007-10-31 22:01 sun 阅读(560) 评论(0)  编辑  收藏 所属分类: spring

新用户注册  刷新评论列表  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问   管理
相关文章:
  • Struts配置连接池错误解决问题及实例
  • Spring事务管理
  • Spring Bean 封装机制——Spring学习笔记(2)
  • 控制反转(IOC)与依赖注入(DI)——spring学习笔记(1)
 
 
Powered by:
BlogJava
Copyright © sun