Spring_3_1 Bean 的生命周期

2017-01-11  本文已影响12人  mm_cuckoo

实体bean

package com.sfox.spring.aop;

public class Book {
    
    public Book(){
        System.out.println("构造方法运行.....");
    }
    
    public void init(){
        System.out.println("初始化方法.......");
    }
    
    public void add(){
        System.out.println("book...method....");
    }
    
    public void destory(){
        System.out.println("销毁方法........");
    }
}

配置实例化实体 bean 方式

默认情况下,实体在启动Spring 容器时被实例。在bean中添加属性lazy-init="true"延迟初始化,在启动Spring容器时布会被实例,只有在调用时才会被实例。也可以再beans根标签中添加全局的延迟初始化属性:default-lazy-init="true"。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- bean definitions here -->

    <bean id="book" class="com.sfox.spring.aop.Book" lazy-init="true" init-method="init" destroy-method="destory"/>
</beans>

设置bean的初始化调用方法和销毁方法

在实体bean中添加初始化方法和销毁方法,在bean 标签中用属性init-method="init" 添加初始化方法,用destroy-method="destory" 添加销毁方法。

<bean id="book" class="com.sfox.spring.aop.Book" lazy-init="true" init-method="init" destroy-method="destory"/>

执行顺序

  1. 先对类进行实例,执行构造函数
  2. 然后在执行初始化方法
  3. 最后执行销毁方法

启动容器和关闭容器的方法

用ClassPathXmlApplicationContext 方法实现了AbstractApplicationContext接口,可以调用ClassPathXmlApplicationContext中的close 方法对容器进行关闭。

public class AopTest {
    
    @Test
    public void testBean(){
        AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        Book book = (Book) context.getBean("book");
        book.add();
        context.close();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读