Spring 核心框架之Bean配置

简介:
在上一篇博文里我已经简单介绍了一些Beans 的基本配置。现在介绍Bean 的更为详细的相关内容。
Bean 的作用范围(Scope
Spring 中,Bean 5 种作用范围,分别是:
-singleton ,即单例模式,在整个环境中仅存在一个Bean 的实例对象。
-prototype ,可以无限次实例化,从某种程度上说,相当于java new 运算符。
-request ,每个Http Request 均拥有一个Bean 的实例。
-session ,每个会话均拥有一个Bean 的实例。
-global session ,全局session 。类似于session ,但是仅仅只能在基于Portlet Web 应用程序中使用。

 

Spring 中,Bean 默认Scope Singleton ,若要手动指定Scope ,则应在配置文件中插入下面的代码:
< bean  id ="accountService"  class ="com.foo.DefaultAccountService"  scope ="xxx" />
其中,scope 属性取值可为上面的5 个值中的任意一个。
需要注意的是,若要使用request session 或者global session ,则必须使用可以支持web ApplicationContext 的实现,比如XmlWebApplicationContext ,否则会出现IllegalStateException 异常。在web 程序里面,特别是要与Struts 框架相集成的情况下,应在web.xml 里面加入下面所示的监听类(要求Servlet 版本在2.4 以上,其余的版本请查阅相关文档)。
< web-app > 
... 
< listener > 
   < listener-class > 
    org.springframework.web.context.request.RequestContextListener 
   </ listener-class > 
</ listener > 
... 
</ web-app > 

 

自定义Bean 的特性
对于Bean ,可以为其自定义初始化的回调方法和销毁回调方法。
方法很容易,只需在配置文件中加入下面所示的代码:
< bean  id ="exampleInitBean"  class ="examples.ExampleBean"  init-method ="init" />
然后在 Bean 中定义如下的方法:
public  class ExampleBean { 
   public  void init() { 
   // do some initialization work 
  } 

对于销毁回调方法,也是一样的,在配置文件中定义  
< bean  id ="exampleInitBean"  class ="examples.ExampleBean"  destroy-method ="cleanup" />
然后在Bean 中定义一个cleanup() 方法即可。其实还有一种方法,即Bean 实现InitializingBean DisposableBean 接口,也可以达到这种目的。但是如果这么做会与Spring 发生耦合,不利于代码的可维护性。
有的时候可能存在许多Bean ,这些Bean 都需要调用初始化方法,要是在配置文件中逐个修改,是很费时间的事情,我们可以采用默认初始化方法。主要做如下配置:
< beans  default-init-method ="init" > 
   < bean  id ="blogService"  class ="com.foo.DefaultBlogService" > 
     < property  name ="blogDao"  ref ="blogDao"  /> 
   </ bean > 
</ beans >    
这段配置假设初始化方法均命名为init() ,一旦创建这个Bean ,则会调用所有与之存在依赖关系的Bean init()










本文转自 kevx 51CTO博客,原文链接:http://blog.51cto.com/spinlock/327794,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
SQL Java 数据库连接
(自用)Spring常用配置
(自用)Spring常用配置
13 0
|
8天前
|
存储 安全 Java
事件的力量:探索Spring框架中的事件处理机制
事件的力量:探索Spring框架中的事件处理机制
23 0
|
17天前
|
缓存 Java Spring
Spring 框架中 Bean 的生命周期
Spring 框架中 Bean 的生命周期
29 1
|
29天前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
35 1
|
2天前
|
Java 数据库连接 开发者
浅谈Spring的Bean生命周期
浅谈Spring的Bean生命周期
9 1
|
6天前
|
XML Java 数据格式
Bean工厂探秘:解析Spring底层工厂体系BeanFactory的神奇之道
Bean工厂探秘:解析Spring底层工厂体系BeanFactory的神奇之道
16 0
Bean工厂探秘:解析Spring底层工厂体系BeanFactory的神奇之道
|
6天前
|
JSON Java 数据库连接
属性注入掌握:Spring Boot配置属性的高级技巧与最佳实践
属性注入掌握:Spring Boot配置属性的高级技巧与最佳实践
13 1
|
6天前
|
Java 数据库连接 Spring
简化配置,提高灵活性:Spring中的参数化配置技巧
简化配置,提高灵活性:Spring中的参数化配置技巧
15 0
|
6天前
|
Java Shell 测试技术
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
16 0
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
|
10天前
|
Java 容器
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
12 0