当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

Spring2.5 管理的Bean的生命周期

发表于: 2009-04-07   作者:javaboys   来源:转载   浏览次数:
摘要: Spring 2.5 Bean 的生命周期 初始化 init-method="指定bean类定义的初始方法" 销毁 destroy-method="指定bean类定义的销毁方法" bean的实例构造: bean的实例化如果<bean scope="singleton"/>是默认单例,那么会在
Spring 2.5 Bean 的生命周期


初始化
init-method="指定bean类定义的初始方法"

销毁

destroy-method="指定bean类定义的销毁方法"

bean的实例构造:
bean的实例化如果<bean scope="singleton"/>是默认单例,那么会在Spring容器启动时就实例化,

如果scope非单例,那么会在调用这个bean时才初化,如果想要 scope="singleton"时,调用时再实例化,可以配置延迟实例化属性 lazy-init="true" false 则不延迟实例,

------------------------------------------------------

代码样例:


package test.service;

public interface PersonService {

	public void save();

}


package test.service.impl;

import test.service.PersonService;


public class PersonServiceBean implements PersonService {
	public PersonServiceBean(){
		System.out.println("构造");
	}
	public void init(){
		System.out.println(this.getClass().getName() + "  我被初始化了");
	}
	
	
	
	public void save(){
		System.out.println("sava function");
	}
	
	public void destroy(){
		System.out.println(this.getClass().getName() + "  我被销毁了");
	}
}


package junit.test;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import test.service.PersonService;

//测试类
public class SpringTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception{
		
	}
	@Test public void instanceSpring(){
		AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		PersonService p = (PersonService) ctx.getBean("personService");//get bean
		p.save();//调用方法
		ctx.close();//关闭spring容器,这里测试destroy属性
	}
	
	
}

//配置文件
<?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="personService" class="test.service.impl.PersonServiceBean" scope="singleton" lazy-init="true" init-method="init" destroy-method="destroy"></bean>

	</beans>

// scope="singleton" bean为单例,这里设置scope默认就是单例
// lazy-init="true" 表明在getBean时才实例化这个bean
// init-method="init" 调用init()方法初始化这个bean 此方法是自定义也可以是其他已有的

// destroy-method="destroy" 调用定义的destroy方法来销毁bean,须调用AbstractApplicationContext下面的close方法,才会执行,

Spring2.5 管理的Bean的生命周期

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Java对象的生命周期,从初始化到销毁如下: Object obj = new Object(); obj.setXXX(); obj.getXXX();
开篇先用一张老图描述下 Spring 中 Bean 容器的生命周期。 插叙一下,记得某个博文中提到:“ Sprin
开篇先用一张老图描述下Spring中Bean容器的生命周期。 插叙一下,记得某个博文中提到:“Spring的Be
转自:http://sexycoding.iteye.com/blog/1046775 开篇先用一张老图描述下Spring中Bean容器的生命周
开篇先用一张老图描述下Spring中Bean容器的生命周期。 插叙一下,记得某个博文中提到:“Spring的Be
概要: IOC容器中Bean的生命周期 Spring IOC容器可以管理Bean的生命周期,Spring允许在Bean生命周期
Spring ApplicationContext 中的bean的生命周期 Spring 的BeanFactory 工厂对与Spring的Bean的生命周
一.概述 首先,关于生命周期其实就是一个事物从出生到死亡这个阶段,回到我们的程序世界中,对象的生
Spring 中bean 的生命周期短暂吗? 在spring中,从BeanFactory或ApplicationContext取得的实例为Sing
Spring 中bean 的生命周期短暂吗? 在spring中,从BeanFactory或ApplicationContext取得的实例为Sing
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号