• Spring Bean的生命周期


    Spring IoC容器的本质是管理Bean,对于Bean而言在容器中有其存在的生命周期。它的初始化和销毁也需要一个过程。Bean的生命周期主要了解Spring IoC容器初始化和销毁Bean的过程。为了定义安装和拆卸一个 bean,我们只要声明带有 init-method 和/或 destroy-method 参数的 。init-method 属性指定一个方法,在实例化 bean 时,立即调用该方法。同样,destroy-method 指定一个方法,只有从容器中移除 bean 之后,才能调用该方法。

    Bean的生命周期可以表达为:Bean的定义——Bean的初始化——Bean的使用——Bean的销毁 

    1.1 定义Bean

     这是Bean配置文件

    1  <?xml version="1.0" encoding="UTF-8"?>
    2  <beans xmlns="http://www.springframework.org/schema/beans"
    3      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    5          
    6     <bean id="HelloWorld" class="com.spring.chapter2.HelloWorld" init-method="init" destroy-method="destroy">
    7          <property name="say" value="世界你好"></property>
    8     </bean>
    9  </beans>

    1.2下面是HelloWorld.java的定义:

     1 package com.spring.chapter2;
     2 
     3 public class HelloWorld {
     4 
     5     
     6     public String getSay() {
     7         return say;
     8     }
     9     public void setSay(String say) {
    10         this.say = say;
    11     }
    12     private String say;
    13     
    14     
    15     public void init(){
    16         System.out.println(say+"Bean 开始初始化...");
    17         
    18     }
    19     public void destroy(){
    20         System.out.println(say+"Bean 开始销毁...");
    21     }
    22 
    23 }

    2.1 下面是 Main.java 文件的内容。

    1     public static void main(String[] args) {
    2         
    3         AbstractApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring_xml/spring.xml");
    4         HelloWorld helloWorld=(HelloWorld)applicationContext.getBean("HelloWorld");
    5         System.out.println(helloWorld.getSay());
    6         applicationContext.registerShutdownHook(); //AbstractApplicationContext 类中声明的关闭 hook 的 registerShutdownHook()方法。它将确保正常关闭,并且调用相关的 destroy 方法。
    7     }

    2.2测试结果

    默认的初始化和销毁方法

    如果你有太多具有相同名称的初始化或者销毁方法的 Bean,那么你不需要在每一个 bean 上声明初始化方法销毁方法。框架使用 元素中的 default-init-method 和 default-destroy-method 属性提供了灵活地配置这种情况,如下所示:

     1 <beans xmlns="http://www.springframework.org/schema/beans"
     2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xsi:schemaLocation="http://www.springframework.org/schema/beans
     4     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
     5     default-init-method="init" 
     6     default-destroy-method="destroy">
     7 
     8    <bean id="..." class="...">
     9       ...
    10    </bean>
    11 
    12 </beans>
  • 相关阅读:
    oracle修改登录认证方式
    oracle设定用户密码使用时间
    oracle口令管理之允许某个用户最多尝试三次登录
    信息系统项目管理师考试大纲(组织整理)
    信息系统项目管理师考试大纲知识点汇总
    项目经理、系统架构师或技术骨干应该具备的知识
    【数据挖掘】数据挖掘工程师是做什么的?
    Java学习
    shuffle的过程分析
    Hadoop 原理总结
  • 原文地址:https://www.cnblogs.com/ysource/p/12345463.html
Copyright © 2020-2023  润新知