• Spring框架中Bean的生命周期


    一、Bean的定义
     Spring通常通过配置文件定义Bean。如:
     
    <?xml version=”1.0″ encoding=”UTF-8″?>
     <beans xmlns=”http://www.springframework.org/schema/beans”
     xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
     xsi:schemaLocation=”http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd”>
     <bean id=”HelloWorld” class=”com.pqf.beans.HelloWorld”>
     <property name=”msg”>
     <value>HelloWorld</value>
     </property>
     </bean>
     </beans>
     
    这个配置文件就定义了一个标识为 HelloWorld 的Bean。在一个配置文档中可以定义多个Bean。
     
    二、Bean的初始化
     有两种方式初始化Bean。
     1、在配置文档中通过指定init-method 属性来完成
     在Bean的类中实现一个初始化Bean属性的方法,如init(),如:
     public class HelloWorld{
     public String msg=null;
     public Date date=null;
     
    public void init() {
     msg=”HelloWorld”;
     date=new Date();
     }
     ……
     }
     然后,在配置文件中设置init-mothod属性:
     <bean id=”HelloWorld” class=”com.pqf.beans.HelloWorld” init-mothod=”init” >
     </bean>
     
    2、实现 org.springframwork.beans.factory.InitializingBean接口
     Bean实现InitializingBean接口,并且增加 afterPropertiesSet() 方法:
     
    public class HelloWorld implement InitializingBean {
     public String msg=null;
     public Date date=null;
     
    public void afterPropertiesSet() {
     msg=”向全世界问好!”;
     date=new Date();
     }
     ……
     }
     
    那么,当这个Bean的所有属性被Spring的BeanFactory设置完后,会自动调用afterPropertiesSet()方法对Bean进行初始化,于是,配置文件就不用指定 init-method属性了。
     
    三、Bean的调用
     有三种方式可以得到Bean并进行调用:
     1、使用BeanWrapper
     HelloWorld hw=new HelloWorld();
     BeanWrapper bw=new BeanWrapperImpl(hw);
     bw.setPropertyvalue(“msg”,”HelloWorld”);
     system.out.println(bw.getPropertyCalue(“msg”));
     
    2、使用BeanFactory
     InputStream is=new FileInputStream(“config.xml”);
     XmlBeanFactory factory=new XmlBeanFactory(is);
     HelloWorld hw=(HelloWorld) factory.getBean(“HelloWorld”);
     system.out.println(hw.getMsg());
     
    3、使用ApplicationConttext
     ApplicationContext actx=new FleSystemXmlApplicationContext(“config.xml”);
     HelloWorld hw=(HelloWorld) actx.getBean(“HelloWorld”);
     System.out.println(hw.getMsg());
     
    四、Bean的销毁
     1、使用配置文件中的 destory-method 属性
     与初始化属性 init-methods类似,在Bean的类中实现一个撤销Bean的方法,然后在配置文件中通过 destory-method指定,那么当bean销毁时,Spring将自动调用指定的销毁方法。
     
    2、实现 org.springframwork.bean.factory.DisposebleBean接口
     如果实现了DisposebleBean接口,那么Spring将自动调用bean中的Destory方法进行销毁,所以,Bean中必须提供Destory方法。

  • 相关阅读:
    window字体安装方法,fonts安装方法
    在Vmware虚拟机中安装Mac OS
    winbox教程
    eclipse activiti 使用 集成 插件
    高等数学 1
    电路 分析 学习 书 的 推荐
    eclipse 替代 keil (二) eclipse 和 jdk 安装
    eclipse 替代 keil (三) 新建项目
    Spark Stuctured Streaming(实时流计算:Structured Streaming) windows开发环境搭建
    Hadoop HA一键启动,一键关闭脚本
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3041128.html
Copyright © 2020-2023  润新知