1. 程式人生 > >spring bean的初始化/銷燬順序

spring bean的初始化/銷燬順序

參考https://blog.csdn.net/xiaolyuh123/article/details/61196044

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
 
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
 
public class InitBeanAndDestroyBean implements InitializingBean, DisposableBean {
	public String say() {
		return "Hello!" + this.getClass().getName();
	}
 
	public InitBeanAndDestroyBean() {
		System.out.println("執行InitBeanAndDestroyBean構造方法");
	}
 
	@Override
	public void destroy() throws Exception {
		System.out.println("介面-執行InitBeanAndDestroyBeanTest:destroy方法");
	}
 
	@Override
	public void afterPropertiesSet() throws Exception {
		System.out.println("介面-執行InitBeanAndDestroyBeanTest:afterPropertiesSet方法");
	}
 
	@PostConstruct
	public void postConstructstroy() {
		System.out.println("註解-執行InitBeanAndDestroyBeanTest:PostConstruct");
	}
 
	@PreDestroy
	public void preDestroy() {
		System.out.println("註解--執行InitBeanAndDestroyBeanTest:preDestroy方法");
	}
 
	public void initMethod() {
		System.out.println("XML配置-執行InitBeanAndDestroyBeanTest:init-method方法");
	}
 
	public void destroyMethod() {
		System.out.println("XML配置-執行InitBeanAndDestroyBeanTest:destroy-method方法");
	}
}

從執行結果可以看出:

Bean在例項化的過程中:Constructor > @PostConstruct >InitializingBean > init-method
Bean在銷燬的過程中:@PreDestroy > DisposableBean > destroy-method

相關推薦

🙈羞,Spring Bean 初始/銷燬竟然有這麼多姿勢

文章來源:http://1t.click/bfHN 一、前言 日常開發過程有時需要在應用啟動之後載入某些資源,或者在應用關閉之前釋放資源。Spring 框架提供相關功能,圍繞 Spring Bean 生命週期,可以在 Bean 建立過程初始化資源,以及銷燬 Bean 過程釋放資源。Spring 提供多

spring bean初始/銷燬順序

參考https://blog.csdn.net/xiaolyuh123/article/details/61196044 import javax.annotation.PostConstruct; import javax.annotation.PreDest

Spring Bean初始之後/銷燬之前執行指定方法

關於在spring  容器初始化 bean 和銷燬前所做的操作定義方式有三種: 通過@PostConstruct 和 @PreDestroy 方法 實現初始化和銷燬bean之前進行的操作 通過 在xml中定義init-method 和  destory-metho

spring(bean初始銷燬、注入,作用域)

IOC:控制反轉,也稱為依賴注入(DI)。這是一個過程。通常我們需要一個物件的時候,是主動建立物件,並且主動傳入到需要使用該物件的地方。而IOC則是由容器建立物件,注入到我們需要使用該物件的位置,兩者相比,一個主動,一個被動,被動的則是稱為依賴注入(控制反轉,由主動建立改為被動注入)。IO

Spring bean初始與銷毀的幾種方式和區別

pack ack 構造 rop struct service() throws esc println 1. <bean> 元素的 init-method/destroy-method屬性指定初始化之後 /銷毀之前調用的操作方法 2. 指定方法上加上@PostC

spring-bean初始銷燬之前之後的操作

使用註解定義Bean的初始化和銷燬     Spring初始化bean或銷燬bean時,有時需要作一些處理工作,因此spring可以在建立和拆卸bean的時候呼叫bean的兩個生命週期方法。 回顧配置檔案的寫法:<bean id=“foo” class=“...Foo”

Spring Bean初始之後執行指定方法

轉載:https://blog.csdn.net/forever7107/article/details/76446544 常用的設定方式有以下三種: 通過實現 InitializingBean/DisposableBean 介面來定製初始化之後/銷燬之前的操作方法; 通過 <bean&g

Spring bean初始原理詳解

一、  閒言 使用spring已經多年,卻從來沒有仔細研究過spring bean的初始化過程以及原理。知其然而不知其所以然,當面遇到比較深度的問題的時候,就無法解決或者需要花費大量問題方可解決。 二、  目的 本文主要想解決以下幾個問題,希望大家看完本文以後,能得出答案

Spring Bean 初始之InitializingBean, init-method 和 PostConstruct

概述從介面的名字上不難發現,InitializingBean 的作用就是在 bean 初始化後執行定製化的操作。Spring 容器中的 Bean 是有生命週期的,Spring 允許在 Bean 在初始化完成後以及 Bean 銷燬前執行特定的操作,常用的設定方式有以下三種:通過實現 InitializingBe

spring容器初始bean之後或銷燬bean之前,能做的操作

通過 <bean> 標籤 init-method  初始化bean之後呼叫的方法 destroy-method  銷燬bean之前呼叫的操作方法 <bean id="initQuartzJob" class="com.upinc

spring ioc---定製bean初始銷燬時的回撥函式

約莫有4種方式定製bean初始化和銷燬時的回撥函式,如下表格. 方式 說明 使用beans標籤的屬性 beans標籤中,使用以下兩個屬性, `default-init-method`和`default-destroy-m

Spring控制Bean初始順序2

@Order Spring 4.2 利用@Order控制配置類的載入順序 4.2 演示 兩個演示bean package com.wisely.spring4_2.order; public cl

Spring啟動流程(四)之Bean初始前後的一些操作

【Spring原始碼分析】非懶載入的單例Bean初始化前後的一些操作   再看AbstractApplicationContext的refresh方法中的細節: Spring預設載入的兩個Bean,systemProperties和systemEnvironment,

Spring IOC 初始順序問題

今天在群裡面看到了一個很有趣的問題。那就是Spring IOC的執行順序問題。知道IOC初始化順序的朋友都應該知道,Spring IOC的執行順序: 先執行BeanPostProcessor.postProcessBeforeInitialization方法

第三週實踐專案1--順序表的基本運算(3)插入.刪除資料,初始.銷燬線性表

問題: /* Copyright (c)2015,煙臺大學計算機與控制工程學院 All rights reserved. 檔名稱:專案1--順序表的基本運算(3)插入.刪除資料,初始化.銷燬線性表.cpp

spring配置的順序決定了類被初始順序

spring的配置順序是one,compoent-scan(three類被配置了@component標籤,會被他掃描到並自動配置進來),two。 類Three的配置@Component,所以在spring配置了Component-scan掃描器以後就可以自動被

SpringBean初始的三種方法

常用的設定方式有以下三種: 通過實現 InitializingBean/DisposableBean 介面來定製初始化之後/銷燬之前的操作方法; 通過 <bean> 元素的 init-method/destroy-method屬性指定初始化之後 /銷燬之前呼叫的

Spring何時初始bean

今天在看《spring原始碼深度解析》第五章關於bean載入的部分,跟蹤原始碼的過程中產生一個困惑。就是在我的程式碼中呼叫getBean以前,在載入xml配置檔案的時候對應的bean就已經進行了初始化。 程式碼如下: Main.java public cl

springbean初始過程

在傳統的Java應用中,Bean的生命週期非常簡單。Java的關鍵詞new用來例項化Bean(或許他是非序列化的)。這樣就夠用了。相反,Bean 的生命週期在Spring容器中更加細緻。理解Spring Bean的生命週期非常重要,因為你或許要利用Spring提供的機會來訂製

Spring的IOC、Spring物件初始bean時機、Spring容器生命週期

IOC指的是控制反轉,把物件的建立、初始化、銷燬等工作都交給Spring容器。由spring容器來控制物件的生命週期。 Spring物件初始化bean時機: 在預設情況下,只要在Spring容器中配置了一個bean,容器在啟動時就會例項化該bean,單例模式。 如果在Spr