Spring装配Bean的过程

首先说一个概念:“懒加载”

懒加载:就是我们在spring容器启动的是先不把所有的bean都加载到spring的容器中去,而是在当需要用的时候,才把这个对象实例化到容器中。

spring配置文件中bean默认是lazy-init=“false”为非懒加载。下面具体说明。

1、默认情况下bean实例化过程:

 AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("/beans.xml"); //随着spring容器加载,就实例化了bean。

2、给bean设置 lazy-init=“true”

AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("/beans.xml"); //随着spring容器加载,就不会实例化bean。

Person person = ctx.getBean("person");//这一步才在实例化bean。就是前面说的需要的时候再实例化了。

下面就是实例化bean的过程。

实例化bean测试结果:先构造函数——>然后是b的set方法注入—— >InitializingBean 的afterPropertiesSet方法——>init- method方法

教科书上总结为:
一、Spring装配Bean的过程
1. 实例化;
2. 设置属性值;
3. 如果实现了BeanNameAware接口,调用setBeanName设置Bean的ID或者Name;
4. 如果实现BeanFactoryAware接口,调用setBeanFactory 设置BeanFactory;
5. 如果实现ApplicationContextAware,调用setApplicationContext设置ApplicationContext
6. 调用BeanPostProcessor的预先初始化方法;
7. 调用InitializingBean的afterPropertiesSet()方法;
8. 调用定制init-method方法;
9. 调用BeanPostProcessor的后初始化方法;


Spring容器关闭过程
1. 调用DisposableBean的destroy();
2. 调用定制的destroy-method方法;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 中间件云服务器系统 ExaLogic X2 - 2 和 T3-1B概述

甲骨文公司宣布推出Oracle中间件云服务器 T3-1B,该新模式可为Oracle 中间件云服务器的集成系统提供SPARC Solaris服务器业界领先的性能、扩展性和可用性。 旨在为大型和关键任务部署而设计,Oracle 中间件云服务器是一个由甲骨文测试和调试而专门设计的软…

几个常用的Linux操作系统监控脚本

为大家提供五个常用Linux监控脚本(查看主机网卡流量、系统状况监控、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告、监控CPU和内存的使用情况、全方位监控主机),有需要的朋友不妨看看哦 1、查看主机网卡流量 #!/bin/bash#network#Mike.Xuw…

linux下面的查找

locate:速度快不是实时的,每天定时执行把结果导入数据库模糊匹配updatedb --手动生成文件数据库,执行时间较长find:实时查找精确速度慢支持众多查找标准find 查找路径 查找标准 处理动作查找路径:默认当前目录查找标…

python常用数学符号_数学菜鸟的AI学习攻略-AI学习常用数学符号 - 老牛博客

[ 导读 ]自学AI的过程中,我们非常需要理解这些数学符号。它可以让你用一种非常简洁的方式来表达一个复杂的想法。你是否跟我一样,自幼恨透数学。现在,我终于发现了我对数学绝缘的最主要原因:我的老师从来不去回答最重要的问题&…

输入法智能化发展历程

技术发展周期一般会持续十年的时间,我们现在已经进入移动互联网周期的早期阶段,这是过去的50 年来的第5 个发展周期:20世纪60 年代,大型机时代;20世纪70年代,小型机时代;20世纪80 年代&#xff…

线程类C++多线程框架(一)--------- new一下就启动一个线程

之前笔者几篇文章介绍了改线程类的文章. 关联文章的地址 几年前写过一个C的多线程框架,虽然写完了,但是人一懒做了一次说明以后就没影了,最近把代码整顿了一下,预备发到github上,在这里,再把这个框架总结一…

Linux下Gcc生成和使用静态库和动态库详解

参考文章:http://blog.chinaunix.net/uid-23592843-id-223539.html 一、基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和linux的平台不同&…

python正则表达式试题_正则表达式练习题2

1、匹配一行文字中的所有开头的字母内容#codingutf-8import res"i love you not because of who you are,but because of who i am when i am with you"contentre.findall(r"\b\w",s)print contentc:\Python27\Scripts>python task_test.py[‘i‘,‘l‘…

Knowladge_网站学习_jQuery插件

几个参考的jquery插件网站 1. 240 多个jQuery 插件              http://www.cnblogs.com/Terrylee/archive/2007/12/09/the-ultimate-jquery-plugin-list.html 2. 1587款jQuery 插件开源软件            http://www.oschina.net/project/tag/273/jque…

C语言求斐波那契数列

一.递归算法 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int fib(int k) {if (k < 2)return 1;elsereturn fib(k - 1) fib(k - 2); } int main() {int n 0;int res 0;printf("求输入斐波那契数列的阶数");scanf("%d", &n);res…

CMFCRibbonStatusBar中添加图片按钮

今天遇到了问题&#xff0c;网上down的 Heres how it works: 1. Create aCMFCRibbonButtonsGroup that will hold the status icon and add it to CMFCRibbonStatusBar 2. Create a CMFCToolBarImagesobject and add status icons via AddIcon() . 3. Register theCMFCToolbarI…

nodejs中path的用法

在用nodejs进行开发的时候&#xff0c;常常要进行复杂的路径判断。对于我这种刚开始接触模块化开发的小白来说&#xff0c;实在是浪费很多宝贵的脑细胞&#xff08;找路径bug&#xff09;。 node中的path模块帮助我们方便的解决了路径设置问题。 首先将path模块引入 require(pa…

nginx $mail-send()发送邮件报错_基于SMTP协议的E-MAIL电子邮件发送客户端软件C#实现...

摘 要电子邮件在当今社会中扮演了一个很重要的角色。越来越多的人在使用它。而且用它的人数势必会继续增加。虽然&#xff0c;现在已经有很多的邮件收发软件例如著名的FoxMail 但是对于大多数的非专业的人来说它还是有点难度稍嫌负责。因此&#xff0c;我们就利用SMTP和Pop协议…

C语言求n的阶乘

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int fact(int k) {if (k > 1)return k * fact(k - 1);elsereturn 1; } int main() {int n 0;int num 0;printf("请输入一个正整数n,求n!");scanf("%d", &n);numfact(n);printf("…

oracle11g 隐藏参数_ORACLE 11GR2常用参数(含隐含参数)设置

ORACLE 11GR2常用参数(含隐含参数)设置如下&#xff1a;alter system set "_PX_use_large_pool" true scopespfile;alter system set "_clusterwide_global_transactions" false scopespfile;#RAC环境 https://www.sohu.com/a/152628320_505827alter sys…

【转】DCT变换的透彻解析

3、离散余弦变换 DCT  将图像从色彩域转换到频率域&#xff0c;常用的变换方法有&#xff1a;DCT变换的公式为&#xff1a;f(i&#xff0c;j) 经 DCT 变换之后&#xff0c;F(0&#xff0c;0) 是直流系数&#xff0c;其他为交流系数。  还是举例来说明一下。  8x8的原始图…

使用git pull文件时和本地文件冲突怎么办?

Git常用命令 具体方法如下 git pull origin 分支//出现错误git stash 缓存起来git pull origin 分支git stash pop //还原git stash clear 开发人员常常遇到这种情况&#xff1a;花了几天时间一直在做一个新功能&#xff0c;已经改了差不多十几个文件&#xff0c;突然有一个bu…

C语言计算字符串的长度

一。循环实现 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int my_strlen(char *pstr) {int num 0;while (*pstr ! \0){num;pstr;}return num; } int main() {int count 0;char str[100] { 0 };printf("请输入一个字符串");scanf("%s"…

Android 目录

Android 移动平台概述 1 Android平台简介 2 Android平台所提供的功能 3 Android框架简介 4 Android SDK 简介:包括一系列ANDROID应用开发工具和文档&#xff0c;包括调试器&#xff0c;库文件集&#xff0c;手机设备模拟器&#xff0c;文档&#xff0c;范例和开发指导。 5 An…

安防硬件WIZnet基于全硬件TCP/IP的安防产品应用及方案

在本文中,我们主要介绍安防硬件的内容,自我感觉有个不错的建议和大家分享下 WIZnet立足于生产全硬件TCP/IP协议栈芯片&#xff0c;为单片机提供理想的处置计划。整体来讲&#xff0c;其应用领域还是非常广泛的&#xff0c;以智能电表为代表的Smart Energy&#xff1b;以数字楼宇…