Spring中Bean的生命周期實例講解
一、bean生命周期
其定義為:從對象的創(chuàng)建到銷毀的過程。
而Spring中的一個Bean從開始到結(jié)束經(jīng)歷很多過程,但總體可以分為六個階段Bean定義、實例化、屬性賦值、初始化、生存期、銷毀。
二、案例代碼演示
1.首先我們來創(chuàng)建一個包,在包中創(chuàng)建一個Orders的對象,然后在對象中創(chuàng)建一個無參構(gòu)造方法....
package Collectiona.bean; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; public class MyBeanPost implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("在初始化之前執(zhí)行的方法。"); return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("在初始化之后執(zhí)行的方法。"); return bean; } }
2.SpringBean生命周期中的增強接口PostProcessor;
postProcessBeforeInitialization方法執(zhí)行前,會執(zhí)行很多Aware類型的接口,這種類型接口作用是加載資源到Spring容器中。
我們在創(chuàng)建一個MyBeanPost的類來實現(xiàn)BeanPostProcessor接口。 ?
package Collectiona.bean; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; public class MyBeanPost implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("在初始化之前執(zhí)行的方法。"); return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("在初始化之后執(zhí)行的方法。"); return bean; } }
3.在xml文件中配置相關信息。初始化方式,配置的init-method;最后容器銷毀,配置的destroy-method.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="orders" class="Collectiona.bean.Orders" init-method="initMethod" destroy-method="destroyMethod"> <property name="oname" value=""></property> </bean> <bean id="myBeanPost" class="Collectiona.bean.MyBeanPost"> </bean> </beans>
4.最后是進行測試輸出:
package Collectiona.testSpring; import Collectiona.bean.Orders; import org.springframework.context.support.ClassPathXmlApplicationContext; public class demo { public static void main(String[] args) { ClassPathXmlApplicationContext("classpath:Bean4.xml"); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:Bean4.xml"); Orders orders = context.getBean("orders",Orders.class); System.out.println("第四步:獲取bean的實例對象"); System.out.println(orders); context.close(); } }
最終輸出的結(jié)果是:
到此這篇關于Spring中Bean的生命周期實例講解的文章就介紹到這了,更多相關Bean的生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用resty Quartz執(zhí)行定時任務的配置方法
這篇文章主要為大家介紹了使用resty?Quartz來執(zhí)行定時任務的配置方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03給JavaBean賦默認值并且轉(zhuǎn)Json字符串的實例
這篇文章主要介紹了給JavaBean賦默認值并且轉(zhuǎn)Json字符串的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Java實現(xiàn)的Excel列號數(shù)字與字母互相轉(zhuǎn)換功能
這篇文章主要介紹了Java實現(xiàn)的Excel列號數(shù)字與字母互相轉(zhuǎn)換功能,涉及java針對Excel相關數(shù)值與字符串操作技巧,需要的朋友可以參考下2018-03-03Spring Security基于JWT實現(xiàn)SSO單點登錄詳解
這篇文章主要介紹了Spring Security基于JWT實現(xiàn)SSO單點登錄詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式
這篇文章主要介紹了JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10