`
gaoyuntao2005
  • 浏览: 303074 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

入门 07 - Bean生命周期

阅读更多


 在Spring中,从BeanFactory取得的实例为Singleton,预设是每一个别名维持一个实例,对单执行绪的程序来说并不会有什么问题,但对于多执行绪的程序,您必须注意到执行绪安全,您也可以设定每次从BeanFactory取得 Bean时,都产生一个新的实例,例如:

<bean id="helloBean" class="onlyfun.caterpillar.HelloBean" singleton="false">


 singleton预设是true,藉由将其设定为false,每次取得Bean时都会产生一个新的实例。
 BeanFactory 负责Bean的生命周期,包括Bean的生成与销毁、Bean的创建方式(是否为singleton)、Bean的属性设定、依赖关联的建立等。如果您要在Bean的生命周期的某个阶段作一些事情,可以有几个方式,第一个方式是实作Spring所提供的相关接口,透过实作 org.springframework.beans.factory.InitializingBean、 org.springframework.beans.factory.DisposableBean,您可以在Bean创建与销毁时作一些事情:

public interface InitializingBean {

    void afterPropertiesSet() throws Exception;

}

 

public interface DisposableBean {

    void destroy() throws Exception;

}


 实作接口使得Spring的特定接口侵入Bean的实作中,这并不是个很好的作法,考虑到Bean的可移植性,您可以考虑统一Bean的初始化与销毁方法,并在Bean定义档中宣告在初始化或销毁Bean时使用这些方法:

<bean id="helloBean" class="onlyfun.caterpillar.HelloBean"

                           init-method="init"

                           destroy-method="destroy">


 在实作Bean时,只要加入这些方法即可,例如:

public class HelloBean {

    public void init() {

        ....

    }  

  

    ....

  

    public void destroy() {

        ....

    }

}


 这样作的好处是可以不引入任何Spring特定的接口,使得Bean可以轻易的从Spring框架中脱离,只要您所采用的另一个框架可以支持您所自订的初始化与销毁方法,Bean就不用任何的修改,然而这个方法事实上还是依赖于容器,容器必须有呼叫这些方法的能力,只是 这些方法的名称可以由我们自行决定,而不用实现特定的接口。
 除了上面两种方式,您还可以在Bean的建构函式或setter中作一些类似的初始化动作,这可以使得Bean不依赖于特定接口或容器功能,然而销毁时的动作就比较麻烦,因为finalize()执行的时间是由GC决定的,您只能在当中放一些不是实时性需求的销毁相关动作。

分享到:
评论

相关推荐

    Springboot入门——初学者对Spring Ioc技术的理解与运用,包含Bean生命周期

    Spring Ioc Spring所依赖的两个核心理念:控制反转(Ioc)、面向切面编程(AOP) 初学者可能不理解什么叫控制反转,那么我们来进一步描述一下Ioc...Spring把需要管理的对象叫做Spring Bean(简称Bean),管理这些Bean的容

    SPRING BEAN的销毁 项目文件(ECLIPSE)

    SPRING BEAN的销毁 项目文件(ECLIPSE)。 之前各种测试,一直有问题。后来明白,容器啊!...容器灰常重要,使用容器促使BEAN的生命周期。 想了两天,这个问题,SPRING从入门到精通这本书真没处理好!

    jsp servlet 入门学习资料-新手一看就懂

    10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB的开发 10.4.1 Enterprise JavaBeans的实际处理文件 10.4.2 实现EJBObject文件 10.4.3 ...

    JBOSS使用指南

    文档目录: ...2.4 Session Bean的生命周期 3.消息驱动Bean (Message Driven Bean) 3.1 Queue消息的发送与接收(PTP消息传递模型) 3.2 Topic消息的发送与接收(Pub/sub 消息传递模型) 4.实体Bean(Entity Bean)

    HelloSpring.zip

    我的博客中“maven环境搭建及Spring入门”的项目代码。在idea中运行成功。 1。创建IOC容器 ...bean的生命周期: 默认情况下IOC容器创建的时候就会自动创建所有对象,只支持懒加载。default-lazy-init=true

    JSF基础教程 简体中文

    要开发 JSF 组件,您需要更深入了解 JSF 的一些处理细节,包括了 JSF 生命周期以及 JSF 框架。 o JSF 生命周期 o 概述自订组件 简单实例 在不考虑组件有子组件的情况下,这边以实际的一个例子来说明开发组件的过程...

    Spring框架(详细 一).md

    本篇博文适合零基础的同学:主要包括:spring介绍; Ioc 入门案例; Di 入门案例; 核心API介绍; 装配bean基于xml---实例化方式;...生命周期; 属性注入--setter方法 p命名空间; sqel; 集合注入; 装配bean基于注解;

    jqueue:基于Beanstalk作业生命周期的可插入Node.js作业队列

    入门 导入模块 var Jqueue = require ( 'jqueue' ) ; 创建jqueue 依赖项:[node-mysql]( ) var Jqueue = require ( 'jqueue' ) ; var db = require ( 'node-mysql' ) ; var conncetionInfo = { host : '...

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

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

    辉芒微单片机资料和手册,及软件工具

    在手写Spring 源码的过程中会摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:IOC、AOP、Bean生命周期、上下文、作用域、资源处理等内容实现。 适合人群:具备一定编程基础,工作1-3年的研发人员 ...

    jsp从入门到高级编程

    10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB的开发 10.4.1 Enterprise JavaBeans的实际处理文件 10.4.2 实现EJBObject文件 10.4.3 ...

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

    8.6.2 有状态Session Bean的生命周期 322 8.6.3 定制Session Bean的生命 周期行为 323 8.7 在Session Bean中使用事务 327 8.7.1 容器管理事务 327 8.7.2 Bean管理事务 330 8.8 拦截器 332 8.9 依赖注入 335 8.9.1 ...

    structs程序设计从入门到精通word文档

    5.1 ActionForm的生命周期 10 5.2 ActionForm的作用 11 5.3 ActionForm的实践 11 5.4 组装ActionForm 11 5.5 Struts的动态表单的应用 11 第2篇 struts的执行 12 第6章 理解ActionForward 12 6.1 ActionForward 的...

    spring2.5学习PPT 传智博客

    06_Spring管理的Bean的生命周期 07_编码剖析Spring依赖注入的原理 08_编码剖析Spring装配基本属性的原理 09_Spring如何装配各种集合类型的属性 10_使用构造器装配属性 11_用@Resource注解完成属性装配 12_...

    xmljava系统源码-springdemo:spring3的IOC,AOP,JDBC,orm等各个模块的使用示例集锦,可以作为入门的spri

    xml java系统源码 springdemo spring3的IOC,AOP,JDBC,orm等各个模块的使用示例...6.bean的生命周期 init-method,destroy-method,initiableBean, DisposableBean,lasyinit,singleton,prototype @PostConstruct @P

    【2019版】Spring4.3入门视频课程

    bean生命周期、实例化bean的方式和时机、bean的作用域、继承配置 .自动装配、FactoryBean、两种后处理器 二、Spring AOP AOP简介、实现原理、代理技术 Spring AOP的配置实现 AspectJ表达式 三、Spring注解配置 注解...

    java server face 教程

    • JSF 生命周期与组件概述 要开发 JSF 组件,您需要更深入了解 JSF 的一些处理细节,包括了 JSF 生命周 期以及 JSF 框架。 o JSF 生命周期 o 概述自订组件 • 简单实例 在不考虑组件有子组件的情况下,这边以实际的...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    Spring 入门到实战

    在Spring中配置Bean、自动装配、Bean之间的关系(依赖、继承)、Bean的作用域、使用外部属性文件、SpEL、管理Bean的生命周期、通过工厂方法配置Bean、通过注解配置Bean、注解方式AOP基础、前置通知、后置通知、返回...

Global site tag (gtag.js) - Google Analytics