bean的三种创建方式:

方式一: 使用类构造器实例化对象

<!-- 方式一  使用构造器(无参数)实例化对象  -->

<bean id="bean1"

class="cn.itcast.spring.b_instance.Bean1" />

方式二: 使用静态工厂 静态方法,对对象实例化

<!-- 方式二 使用静态工厂实例化对象 -->

<!-- 调用 工厂的 factory-method 返回对象 -->

<bean id="bean2"

class="cn.itcast.spring.b_instance.Bean2Factory" factory-method="getBean2" />

方式三: 使用实例工厂 实例方法 对对象实例化

<!-- 方式三 使用实例工厂实例化对象 -->

<!-- 先实例化工厂 -->

<bean id="bean3Factory" class="cn.itcast.spring.b_instance.Bean3Factory" />

<!-- 再通过工厂对象的实例方法,构造目标对象 -->

<bean id="bean3" factory-bean="bean3Factory"

factory-method="getBean3" />

应用场景: 大多数情况,可以通过构造器直接实例化, 只有在对象构造过程非常复杂的情况下,才会采用工厂实例化的方式

bean的作用域:

Spring为Bean对象,提供五种作用域:

最常用 singleton 和 prototype 两种

Singleton (单例): 在一个BeanFactory对象中,引用唯一的一个目标实例(记住)

Prototype (多例): 每次通过工厂执行getBean时,返回不同实例对象(记住)

Request (请求范围) : 创建对象保存在request范围,如果request销毁,对象销毁

Session (会话范围): 创建对象保存Session中, 如果session销毁,对象销毁

* globalSession (全局会话 ) :分布式系统,全局会话的概念, 一次登录,应用多个系统(了解就可)

单例Bean 在容器初始化时,实例化 (只实例化一次 )

多例Bean 在工程执行getBean时 才会实例化 (每调用一次,返回不同对象 )

bean的生命周期:

可以通过 init-method属性配置 Bean对象初始化执行方法,destory-method属性配置Bean对象销毁的方法

(初始化方法和构造方法 有区别? 构造方法作用申请空间,为对象基本属性初始化 , 初始化方法 对象复杂构造过程 , java语言建议将对象复杂构造过程单独抽取 初始化方法 )

配置文件:

按照上述这么配置:

写测试代码:

查看调用的时机:

发现并没有执行LifeCycleBean 销毁这条代码。

原因:

在对象构造后,立即执行初始化init , 默认没有执行destroy 销毁方法

03Spring_bean的创建和作用域以及生命周期的更多相关文章

  1. Spring中Bean的作用域、生命周期

                                   Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...

  2. MyBatis 作用域和生命周期

    理解到目前为止所讨论的类的作用域和生命周期是非常重要的.如果使用不当可导致严重的并发性问题. SqlSessionFactoryBuilder  这个类可以在任何时候被实例化.使用和销毁.一旦您创造了 ...

  3. spring作用、spring注解、管理对象的作用域与生命周期、自动装配、Spring的框架包有哪些作用是什么

    Spring 1. 作用 创建和管理对象,使得开发过程中,可以不必使用new关键字创建对象,而是直接获取对象!并且,还可以通过一些配置,使得某些获取到的对象,其中某些属性已经是被赋值的! 2. Spr ...

  4. Spring中bean的作用域与生命周期

    在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean.简单地讲,bean 就是由 IOC 容器初始化.装配及管理的对象,除此之外,bean 就与 ...

  5. Bean 注解(Annotation)配置(2)- Bean作用域与生命周期回调方法配置

    Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of ...

  6. Bean XML 配置(2)- Bean作用域与生命周期回调方法配置

    系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Contro ...

  7. C的变量类型、作用域与生命周期的总结

    C的变量类型.作用域与生命周期的总结 最近在看"C Programing Language" (Kernighan, Ritchie)关于外部变量的讨论,之前在学C的时候对这些ex ...

  8. MyBatis(四):SqlSession及其工厂类的作用域和生命周期

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可 https://space.bilibili.com/95256449?spm_id_from=333.788 ...

  9. Mybatis学习-配置、作用域和生命周期

    核心配置文件:Mybatis-config.xml Mybatis的配置文件包含了会深深影响Mybatis行为的设置和属性信息 配置(configuration) 在mybatis-config.xm ...

随机推荐

  1. 你真的了解UIView吗?

    一:首先查看一下关于UIView的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIAppe ...

  2. xcode 删除文件后编译会出现*** is missing from working copy

    删除文件后  工程中会出现如图所示 如果你使用了svn管理工具  你就会看到如图所示 然后  选中  删除 就可以了 好了 多了 不多说了    最近比较忙   博客写的比较 少   等闲了  一定会 ...

  3. 【代码笔记】iOS-轮询弹出框

    一,效果图. 二,工程图. 三,代码. RootViewController.m #import "RootViewController.h" //加入弹出框的头文件 #impor ...

  4. 安卓--selector简单使用

    selector ---选择器 在App的使用中经常能看到selector的身影 如:一个按键看上去白色或者其它颜色,可能是一张图片 按下去又显示其它的颜色或者另外一张图片 这里使用shape配合使用 ...

  5. [读书笔记] Head First 设计模式

    OO基础 抽象 封装 多态 继承 OO原则 原则 描述 封装变化 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混合在一起. 把会变化的部分取出来并“封装”起来,好让其他部分不 ...

  6. C#参考书的链接推荐

    Visual C#.NET入门与提高http://download.chinaitlab.com/soft/6330.htm 使用Visual C# 开发asp.NET入门http://downloa ...

  7. android 进程/线程管理(一)----消息机制的框架

    一:android 进程和线程 进程是程序运行的一个实例.android通过4大主件,弱化了进程的概念,尤其是在app层面,基本不需要关系进程间的通信等问题. 但是程序的本质没有变,尤其是多任务系统, ...

  8. cal 命令

    cal命令是linux里面查看日历的一个命令,效果如下: [root@localhost ~]# cal 十月 日 一 二 三 四 五 六 我们可以的很形象的从日历上看出今天是哪年,哪年的哪天,周几, ...

  9. 通过三张图了解Redux中的重要概念

    上周利用业余的时间看了看Redux,刚开始有点不适应,一下在有了Action.Reducer.Store和Middleware这么多新的概念. 经过一些了解之后,发现Redux的单向数据里的模式还是比 ...

  10. CTO和技术副总裁应该如何分工?谁才是技术领导者?

    谁是初创公司的技术领导者,是CTO还是技术副总裁?任何在创业公司工作的人都知道,我们不应该去问这个问题.因为这两个是非常不同的角色,角色本身会随着创业公司的发展而变化,两者对于业务规模都很重要. 简单 ...