当前位置:首页 > 经验 >

spring生命周期七个过程(java生命周期七个过程)

来源:原点资讯(www.yd166.com)时间:2022-11-01 13:40:59作者:YD166手机阅读>>

推荐阅读:



Springbean的生命周期

在面试中,我们经常会被问到一个问题,就是SpringBean的生命周期。用大白话说,就是说其在创造到销毁按顺序调用了什么方法,在我刚开始学了,一般就是对着标准答案去硬背,完全不了解其意思,也十分容易忘记。

流程图如下

spring生命周期七个过程,java生命周期七个过程(1)

这样看上去十分的复杂,记住也很容易忘掉。

所以,我下面会用代码的方式一步步来模拟SpringBean的工作流程,做到深入了解,这样就不会再次忘记这个知识点了。

既然都说Bean对象Bean对象,那么SpringBean自然也是一个对象了,我们用一个简单的对象来说明,那么要创建对象就需要有构造方法,对象还会有它的属性跟get、set方法。

private String field; public SpringBean() { System.out.println("SpringBean 构造方法"); } public String getField() { System.out.println("SpringBean get方法"); return field; } public void setField(String field) { System.out.println("SpringBean set方法"); this.field = field; }

众所周知要创建一个SpringBean的话还要在配置文件里去声明这个Beam,当然也可以用注解的方式。

<bean class="SpringBean"> <property name="field" value="test" /> </bean>

然后我们去初始化这个容器看看,运行结果是什么

public static void main(String[] args) { ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml"); }

spring生命周期七个过程,java生命周期七个过程(2)

这里我们可以看到当我们在容器里面加载bean的时候,它会依次调用构造方法和set方法,这两步我相信大部分人都知道。但是除此之外我们想一想,我们的Spring它是否还干了别的事情,我们接下来看一下。

如果这个Bean它实现了一些Aware接口的话,它就会注入和bean容器基础属性层面相关的信息。比如实现了BeanNameAware接口,我们要重写它的setBeanName方法,在配置文件中把这个Bean的id设置一下

public void setBeanName(String s) { System.out.println("setBeanName:" s); }

<bean id="BeanName" class="SpringBean"> <property name="field" value="test" /> </bean>

运行一下看会发生什么

spring生命周期七个过程,java生命周期七个过程(3)

剩下的BeanFactoryAware和ApplicationContextAware接口同理,我们直接看结果

spring生命周期七个过程,java生命周期七个过程(4)

首页 12下一页

栏目热文

黑水仙最后结局(黑水仙结局)

黑水仙最后结局(黑水仙结局)

文 | 查尔斯·巴尔本文选自「BFI经典电影细读系列」,本套丛书购买方法见文末。拍完《眩晕》(Vertigo)两年之后,...

2022-11-01 14:21:49查看全文 >>

皮皮马最后的结局(皮皮马电影大结局)

皮皮马最后的结局(皮皮马电影大结局)

在玩游戏时,常常会看到大佬激扬文字,“月神蓝”“凹猫”等黑话、代名词层出不穷。而萌新只能“这是啥啊?”“那又是啥啊?”“...

2022-11-01 13:48:28查看全文 >>

黑水仙大结局(电视剧黑水仙大结局)

黑水仙大结局(电视剧黑水仙大结局)

武侠小说曾经是几代人的记忆,如今却凋零没落,被丢在了无人到访的角落。身为一个老武侠迷,看到这样的情况,是比较唏嘘的。想当...

2022-11-01 13:41:04查看全文 >>

几分钟看完黑水仙(黑水仙黑马)

几分钟看完黑水仙(黑水仙黑马)

1947年的电影《黑水仙》改编自茹玛高登的经典小说,主题是信仰,压抑和禁忌之爱并且掺杂着超自然元素近日,福克斯宣布将这个...

2022-11-01 14:13:22查看全文 >>

印第安大花马结局(马儿陷入沼泽结局)

印第安大花马结局(马儿陷入沼泽结局)

鼠鱼嘴巴旁边长着两撮小“胡须”,酷似水中游动的小老鼠,因而得名“鼠鱼”。鼠鱼属于底栖性的鱼类,它们抗病力极强,摄食欲望强...

2022-11-01 13:43:55查看全文 >>

java生命周期七个过程(java生命周期一览表)

java生命周期七个过程(java生命周期一览表)

前言首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域,这几个区域在java类的生命周期中扮演着比较重要的...

2022-11-01 14:27:17查看全文 >>

spring三大核心原理(java必背100个知识点)

spring三大核心原理(java必背100个知识点)

面试官拿起程序员小马的简历看了看,原本平平无奇的内容丝毫提不起面试官的兴趣,看到技能那一栏时,突然出现的“精通”二字显得...

2022-11-01 14:19:24查看全文 >>

beanfactory和factorybean的区别(beanfactory和factorybean区别)

beanfactory和factorybean的区别(beanfactory和factorybean区别)

前言理解factoryBean是非常非常有必要的,因为在Spring中FactoryBean最为典型的一个应用就是用来创...

2022-11-01 14:06:17查看全文 >>

bean的生命周期讲解(bean的生命周期可以引用的接口)

bean的生命周期讲解(bean的生命周期可以引用的接口)

前言在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean。简单地...

2022-11-01 13:56:24查看全文 >>

bean生命周期的四个阶段(bean的生命周期可以引用的接口)

bean生命周期的四个阶段(bean的生命周期可以引用的接口)

Bean的生命周期可以简单分为11个周期:1.构造方法。不管是反射获取和静态工厂获取都会调用Bean嵌套类的构造方法。2...

2022-11-01 14:03:51查看全文 >>

文档排行