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方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值