`
8366
  • 浏览: 801167 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

第六讲 --Spring管理的Bean的生命周期

阅读更多

 

      容器什么时候实力化我们的业务bean呢? 我们可以写一个简单的测试方法,给业务bean增加一个不带参数的构造方法,看看容器是什么时候实例化我们的业务bean的.

 

PersionServiceBean.java

  

package cn.com.xinli.service.impl;

import org.apache.log4j.Logger;

import cn.com.xinli.service.PersionSevice;
										   
public class PersionServiceBean implements PersionSevice 
{
	Logger log=Logger.getLogger(PersionServiceBean.class);
	
	public PersionServiceBean() 
	{
		log.info("我被实例化了");
	}

	public void save()
	{
		log.info("我是save()方法!");
	}
	
}	

 

 运行:

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		//PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean");
	
		//log.info(ps);                                             
		                            
		//ps.save();

 日志:

2009-05-24 17:41:04,968  INFO (PersionServiceBean.java:13) - 我被实例化了


 

可见在启动容器的时候spring就完成业务bean的实例化了,如果我们不想在容器启动的时候实例化我们的业务bean,我们可以指定 lazy-init="true"

对于 scope 为:prototype (原型)的 bean, 在spring 容器启动的时候并不被实例化,不管你是不是指定lazy-init="false" ,它只有在使用的时候才初始化

 

 

指定Bean的初始化方法和销毁方法 

 

 

package cn.com.xinli.service.impl;

import org.apache.log4j.Logger;

import cn.com.xinli.service.PersionSevice;
										   
public class PersionServiceBean implements PersionSevice 
{
	Logger log=Logger.getLogger(PersionServiceBean.class);
	
	public void init()
	{
		log.info("初始化资源");
	}
	public PersionServiceBean() 
	{
		log.info("我被实例化了");
	}

	public void save()
	{
		log.info("我是save()方法!");
	}
	public void destory()
	{
		log.info("释放资源");
	}
}	

 

 

在 <bean id="persionServiceBean" class="cn.com.xinli.service.impl.PersionServiceBean" init-method="init" destroy-method="destory"></bean>

 

测试:

	ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean");
		ctx.close();

 

 

打印:

 2009-05-24 19:24:14,578  INFO (PersionServiceBean.java:17) - 我被实例化了
2009-05-24 19:24:14,687  INFO (PersionServiceBean.java:13) - 初始化资源
2009-05-24 19:24:14,687  INFO (AbstractApplicationContext.java:815) - Closing org.springframework.context.support.ClassPathXmlApplicationContext@7b7072: display name [org.springframework.context.support.ClassPathXmlApplicationContext@7b7072]; startup date [Sun May 24 19:24:13 CST 2009]; root of context hierarchy
2009-05-24 19:24:14,687  INFO (DefaultSingletonBeanRegistry.java:421) - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@bfc8e0: defining beans [persionServiceBean]; root of factory hierarchy
2009-05-24 19:24:14,703  INFO (PersionServiceBean.java:26) - 释放资源

 

分享到:
评论

相关推荐

    spring培训-笔记

    BeanFactory管理Bean(组件)的生命周期 15 Bean的定义 16 Bean的之前初始化 19 Bean的准备就绪(Ready)状态 21 Bean的销毁 21 ApplicationContext 21 Spring的AOP框架 21 Spring的数据层访问 22 Spring的...

    Spring-Reference_zh_CN(Spring中文参考手册)

    7.3.1. 通知的生命周期 7.3.2. Spring里的通知类型 7.3.2.1. 拦截around通知 7.3.2.2. 前置通知 7.3.2.3. 异常通知 7.3.2.4. 后置通知 7.3.2.5. 引入通知 7.4. Spring里的advisor(Advisor) API 7.5. 使用...

    Spring教程  主要内容:介绍Spring的历史,Spring的概论和它的体系结构,重点阐述它在J2EE中扮演的角色。

    BeanFactory管理Bean(组件)的生命周期 15 Bean的定义 16 Bean的之前初始化 19 Bean的准备就绪(Ready)状态 21 Bean的销毁 21 ApplicationContext 21 Spring的AOP框架 21 Spring的数据层访问 22 Spring的声明式...

    java8源码-spring-learning:spring学习

    负责创建和管理对象(Bean)的生命周期和配置。 MVC:对 web 应用提供了高度可配置性,其他框架的集成也十分方便。 事务管理:提供了用于事务管理的通用抽象层。Spring 的事务支持也可用于容器较少的环境。 JDBC ...

    动力节点老杜最新版Spring6框架教程学习资料分享

    本套Spring教程基于...第十一点:Bean生命周期10步讲解法,其他视频最多讲7步。 通过本套教程的学习,可以让你不仅会使用Spring框架,还会让你精通框架底层原理。无论面试也好,实际开发也好,都会有极大的帮助。

    spring chm文档

    7.3.1. 通知的生命周期 7.3.2. Spring里的通知类型 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对...

    Spring+3.x企业应用开发实战光盘源码(全)

    同时,对Spring框架的三个最重要的框架级接口进行了剖析,并对Bean的生命周期进行讲解。  第4章:讲解如何在Spring配置文件中使用Spring 3.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的说明。 ...

    Spring 3 Reference中文

    第1 章 Spring Framework 介绍..6 1.1 依赖注入和控制反转.6 1.2 模块6 1.2.1 核心容器.7 1.2.2 数据访问/ 整合..7 1.2.3 Web ..8 1.2.4 AOP 和设备组件.8 1.2.5 测试.8 ...

    Spring的学习笔记

    第六课:annotation方式Spring 16 一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource ...

    Spring 2.0 开发参考手册

    7.3.1. 通知的生命周期 7.3.2. Spring里的通知类型 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对...

    Spring中文帮助文档

    3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 ...

    Spring API

    3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 ...

    Spring.3.x企业应用开发实战(完整版).part2

    第6章 Spring AOP基础 6.1 AOP概述 6.1.1 AOP到底是什么 6.1.2 AOP术语 6.1.3 AOP的实现者 6.2 基础知识 6.2.1 带有横切逻辑的实例 6.2.2 JDK动态代理 6.2.3 CGLib动态代理 6.2.4 AOP联盟 6.2.5 代理知识小结 6.3 ...

    spring2.5 学习笔记

    第六课:annotation方式Spring 16 一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource ...

    Spring3.x企业应用开发实战(完整版) part1

    第6章 Spring AOP基础 6.1 AOP概述 6.1.1 AOP到底是什么 6.1.2 AOP术语 6.1.3 AOP的实现者 6.2 基础知识 6.2.1 带有横切逻辑的实例 6.2.2 JDK动态代理 6.2.3 CGLib动态代理 6.2.4 AOP联盟 6.2.5 代理知识小结 6.3 ...

    陈开雄 Spring+3.x企业应用开发实战光盘源码.zip

    同时,对Spring框架的三个最重要的框架级接口进行了剖析,并对Bean的生命周期进行讲解。  第4章:讲解如何在Spring配置文件中使用Spring 3.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的说明。 ...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    5.2 控制托管bean生命周期 5.3 JSF表达式语言 5.3.1 JSFl.1 与JSFl.2 之间表达式语言的关键区别 5.3.2 统一EL概念 5.3.3 值表达式 5.3.4 表达式操作符 5.3.5 方法表达式 5.4 托管bean的Web应用程序开发细节 5.4.1 ...

    spring3.1中文参考文档

    第一部分 Spring framework概述.......................................................................................................................6 第1章 Spring Framework介绍...........................

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    5.2 控制托管bean生命周期 5.3 JSF表达式语言 5.3.1 JSFl.1 与JSFl.2 之间表达式语言的关键区别 5.3.2 统一EL概念 5.3.3 值表达式 5.3.4 表达式操作符 5.3.5 方法表达式 5.4 托管bean的Web应用程序开发细节 5.4.1 ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    第6章 利用JMS实现企业消息处理 226 6.1 面向消息的架构和JMS概述 227 6.1.1 面向消息的应用架构 227 6.1.2 JMS的基础知识和优势 228 6.1.3 JMS的两个重要版本 229 6.2 PTP类型的JMS 230 6.2.1 配置PTP的JMS服务器 ...

Global site tag (gtag.js) - Google Analytics