Spring中Bean的生命周期實(shí)例講解
一、bean生命周期
其定義為:從對(duì)象的創(chuàng)建到銷毀的過程。
而Spring中的一個(gè)Bean從開始到結(jié)束經(jīng)歷很多過程,但總體可以分為六個(gè)階段Bean定義、實(shí)例化、屬性賦值、初始化、生存期、銷毀。
二、案例代碼演示
1.首先我們來創(chuàng)建一個(gè)包,在包中創(chuàng)建一個(gè)Orders的對(duì)象,然后在對(duì)象中創(chuàng)建一個(gè)無參構(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生命周期中的增強(qiáng)接口PostProcessor;
postProcessBeforeInitialization方法執(zhí)行前,會(huì)執(zhí)行很多Aware類型的接口,這種類型接口作用是加載資源到Spring容器中。
我們?cè)趧?chuàng)建一個(gè)MyBeanPost的類來實(shí)現(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文件中配置相關(guān)信息。初始化方式,配置的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.最后是進(jìn)行測(cè)試輸出:
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的實(shí)例對(duì)象");
System.out.println(orders);
context.close();
}
}最終輸出的結(jié)果是:

到此這篇關(guān)于Spring中Bean的生命周期實(shí)例講解的文章就介紹到這了,更多相關(guān)Bean的生命周期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis-Plus實(shí)現(xiàn)自動(dòng)生成代碼的操作步驟
AutoGenerator 是 MyBatis-Plus 的代碼生成器,通過 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個(gè)模塊的代碼,極大的提升了開發(fā)效率,本文將給大家介紹Mybatis-Plus實(shí)現(xiàn)自動(dòng)生成代碼的操作步驟2023-10-10
String與XML互轉(zhuǎn)以及從XML取節(jié)點(diǎn)值并修改的方法
今天小編就為大家分享一篇String與XML互轉(zhuǎn)以及從XML取節(jié)點(diǎn)值并修改的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Java7和Java8中的ConcurrentHashMap原理解析
這篇文章主要介紹了Java7和Java8中的ConcurrentHashMap原理解析,對(duì)ConcurrentHashMap感興趣的讀者,一定要好好看一下2021-04-04
java數(shù)學(xué)歸納法非遞歸求斐波那契數(shù)列的方法
這篇文章主要介紹了java數(shù)學(xué)歸納法非遞歸求斐波那契數(shù)列的方法,涉及java非遞歸算法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
Java編程二項(xiàng)分布的遞歸和非遞歸實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了Java編程二項(xiàng)分布的遞歸和非遞歸實(shí)現(xiàn)代碼實(shí)例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐指南
有參數(shù)傳遞的地方都少不了參數(shù)校驗(yàn),在web開發(fā)中前端的參數(shù)校驗(yàn)是為了用戶體驗(yàn),后端的參數(shù)校驗(yàn)是為了安全,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐,需要的朋友可以參考下2022-04-04
mybatis單元測(cè)試過程(無需啟動(dòng)容器)
在MyBatis中,單元測(cè)試無需啟動(dòng)容器即可進(jìn)行,主要涉及Configuration類、Executor接口及其實(shí)現(xiàn)類,以及XMLMapperBuilder的作用,Configuration類是配置的承載者,負(fù)責(zé)初始化并解析配置文件,Executor接口及其實(shí)現(xiàn)類2024-09-09
SpringBoot常用讀取配置文件的3種方法小結(jié)
本文主要介紹了SpringBoot常用讀取配置文件的3種方法小結(jié),主要包括@Value讀取配置文件,@ConfigurationProperties 讀取配置文件和讀取配置文件中的List,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10

