spring实例化bean过程(spring中bean的生命周期是怎么样的)
本文目录
- spring中bean的生命周期是怎么样的
- 控制台报错 BeanFactory not initialized or already closed - call ’refresh’ before accessing
spring中bean的生命周期是怎么样的
spring中bean完整的生命周期:1,实例化(当我们加载beans.xml文件)实例化到内存。证明:它会调用bean里面的无参构造。2,设置属性值(调用set方法设置属性)。3,如果实现了BeanNameAware则调用BeanNameAware接口的setbeanFatroy()方法,获取Bean的id4,如果实现了BaneFactoryAware则可以获取BeanFactory。,5,如果实现了ApplicationAware则可以获取ApplicationAware。6,如果bean和一个后置处理器关联(实现BeanPostProcessor接口),则会自动去调用 postProcessBeforeInitialization7,如果实现了InitializingBean则会调用afterPropertiesSet方法。 8,如果在配置了《bean init-method="init" /》就可以在bean中定义自己的初始化方法。9,如果bean和一个后置处理器关联(实现BeanPostProcessor接口),则会自动去调用 postProcessAfterInitialization10,使用我们的bean。11,容器关闭。12,可以通过实现DisposableBean接口来调用destroy()的销毁方法。13,可以在配置中,《bean destroy-method="destroy"》,在bean中写销毁方法。
控制台报错 BeanFactory not initialized or already closed - call ’refresh’ before accessing
Spring实例化BeanFactory的时候是默认到classPath下面查找名为applicationContext.xml的文件。
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
Spring BeanFactory实例化Bean的过程
Bean的实例化是Bean生命周期的一个非常重要的环节,一般来说,初始化后,就不再改变了,直到bean被从BeanFactory中显式的移除。当从BeanFactory中通过getBean()方法获取一个bean的时候,BeanFactory会经过如下的步骤来构建Bean的实例,这正是实例化Bean的过程:
调用Bean的默认构造方法,或者在指定的构造方法,生成bean实例(暂称为instance1)。
如果Bean的配置文件中注入了Bean属性值,则在instance1基础上进行属性注入形成instance2,这种注入是覆盖性的。
如果Bean实现了InitializingBean接口,则调用afterPropertiesSet()方法,来改变或操作instance2,得到instance3。
如果Bean的配置文件中指定了init-method="init"属性,则会调用指定的初始化方法,则在instance3的基础上调用初始化方法init(),将对象最终初始化为instance4;当然,这个初始化的名字是任意的。
更多文章:
服务器上的msdtc不可用(服务器上的mdstc不可用,用net start mdstc提示服务名无效怎么启动MDSTC呢)
2024年7月7日 07:31
iframe嵌套页面测试(本地测试时,iframe框架页正常,但是将网页放到服务器时,iframe中每个内嵌页的上部都空出来了一部分)
2024年7月11日 13:11
进度管理软件有哪些(可以帮助项目经理,把控项目进度的工具有哪些)
2024年10月15日 10:45
reactive的意思(rpd reactive plasma deposition是什么意思)
2024年7月26日 21:05
阿司匹林肠溶片的正确吃法早上还是晚上(如何正确服用阿斯匹林)
2024年7月20日 08:09
洛阳市洛龙区疫情最新消息(2021牡丹文化节期间洛阳博物馆开放时间调整)
2024年7月18日 01:32
windows虚拟机下载手机版(在Windows7电脑上如何登陆手机版贴吧app)
2024年6月10日 01:33
c语言中的补码是什么意思(c语言中原码,补码分别是什么意思)
2024年8月21日 02:05
jquery获取li的值(jquery中怎么获取li的数量)
2024年6月27日 13:10
anecdote是什么意思(anecdote可以讲悲伤的故事吗)
2024年7月13日 12:14
topsis熵权法(旅游经济和生态环境的空间错位指数如何计算)
2024年7月29日 20:40