阶段3 2.Spring_03.Spring的 IOC 和 DI_8 spring中bean的细节之生命周期
区分单例还是多例对象

单例的几个状态

初始化方法和销毁方法


设置成我们定义的方法

测试


有创建和初始化。但是没有销毁,。对象一直没有销毁的方法

main方法是一切应用程序的入门。当main方法结束后。我们当前应用中线程占用的内存全部释放。这里当前也包含了我们的容器。
此时没来得及调用销毁方法就已经消失了。
只能手动关闭容器。

这里close方法报错了。

这是因为ClassPathXmlApplicationContext用的是ApplicationContext这个接口类型去接收的

多态的特点。如果你看成父类对象的时候,只能调用父类对象的方法,而子类的方法一个也调用不了。这里用自己去接收。ClassPathXmlApplicationContext

再次运行。

多例
改成多例的情况

容器销毁依然在这

没有看到容器关闭的信息。

可以在这里加个断点进行测试。用Debug的方式去运行。

断点,停住,点击下一步

到这了还没有创建

走到这里才被创建

如果改成单例

加断点,debug调试

只要解析完了配置文件。马上就创建和初始化

这时候也就解释了。spring可以感知到对象的作用范围。选择什么时候创建对象立即还是延迟。

阶段3 2.Spring_03.Spring的 IOC 和 DI_8 spring中bean的细节之生命周期的更多相关文章
- 详解Spring中Bean的作用域与生命周期
摘要:在利用Spring进行IOC配置时,关于bean的配置和使用一直都是比较重要的一部分,同时如何合理的使用和创建bean对象,也是小伙伴们在学习和使用Spring时需要注意的部分,所以这一篇文章我 ...
- Spring中Bean的作用域、生命周期
Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...
- Spring中Bean的作用域和生命周期
作用域的种类 Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域.Spring3 为 Bean 定义了五种作用域,具体如下. 1)singleton 单例模式,使用 sing ...
- Spring中bean的作用域与生命周期
在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean.简单地讲,bean 就是由 IOC 容器初始化.装配及管理的对象,除此之外,bean 就与 ...
- Spring之Bean的作用域与生命周期
在前面博客中提到容器启动获得BeanDefinition对象中有一个scope 属性.该属性控制着bean对象的作用域.本章节介绍Bean的作用域及生命周期,了解bean是怎么来的又怎么没的. 一.B ...
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_3 spring基于XML的IOC环境搭建和入门
创建新项目 修改为jar包的方式 把上一个工程内的代码 java下的com复制过来 由于配置文件没有,所以一运行就会报错 factory文件夹整个删除 dao的实现类 这里删除 测试类保留这两行代码 ...
- 【SSH进阶之路】Spring的IOC逐层深入——Spring的IOC原理[通俗解释一下](三)
1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦合的对象 如果我们打开机械 ...
- Spring bean的作用域以及生命周期
一.request与session的区别 request简介 request范围较小一些,只是一个请求. request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请 ...
- Spring bean的作用域和生命周期
bean的作用域 1.singleton,prototype, web环境下:request,session,gloab session 2.通过scope="" 来进行配置 3. ...
随机推荐
- shell中字符串操作【转】
转自:http://blog.chinaunix.net/uid-29091195-id-3974751.html 我们所遇到的编程语言中(汇编除外)都少不了字符串处理函数吧,当然shell编程也不例 ...
- Linux三剑客:grep、awk、sed
---------------------------------------------------------------------------------------------------- ...
- Android 热修复 Tinker platform 中的坑,以及详细步骤(二)
操作流程: 一.注册平台账号: http://www.tinkerpatch.com 二.查看操作文档: http://www.tinkerpatch.com/Docs/SDK 参考文档: https ...
- python入门导读
很多培训机构宣称py是人工智能必备的编程语言,打着速成的旗号来引诱学者学习python.事实却并不是这样的,万丈高台平地起,不论你想从事怎样的编程工作,都是从最基本的编程技巧开始的:Python并不适 ...
- MVC2新闻
链接:https://pan.baidu.com/s/1ABJfNYq49DnVlf8tJZ6dtg 提取码:akon 复制这段内容后打开百度网盘手机App,操作更方便哦 1.目录结构 2.首先验证登 ...
- IE8 CSS样式兼容性清单
IE8对于CSS2.1是完整支持的,对于CSS3则只是部分支持.下文中只列出IE8完全支持及完全不支持的样式,对于. 注:下文中的E.F均指html标签名,如p,img等. At-rules At类规 ...
- 计算机网络(七),TCP与UDP的区别
七.TCP与UDP的区别 1.面向连接VS无连接 TCP面向连接而UDP面向无连接的,TCP是和单对单传送数据,UDP适合多波发布 2.可靠性 TCP利用握手,确认,重传机制提供了可靠性保证,UDP可 ...
- LA 2797
题目链接 题意:训练指南283页: #include <iostream> #include <cstdio> #include <cstring> #includ ...
- apply,call,bind函数作用与用法
作用 可以把方法借给其它对象使用,并且改变this的指向 a.apply(b,[3,2]);//this指向由a变为b, a的方法借给b使用 实例: function add(a,b){ ...
- ubuntu16.04增大swap空间
参见->这里 参见->这里