@PostConstruct、@Autowired與構(gòu)造函數(shù)的執(zhí)行順序詳解
一、@PostConstruct介紹
Java提供的注解,被用來修飾方法,被@PostConstruct修飾的方法會在服務(wù)器加載Servlet的時(shí)候運(yùn)行,并且只會被服務(wù)器執(zhí)行一次。
PostConstruct在構(gòu)造函數(shù)之后執(zhí)行,init()方法之前執(zhí)行。
(1) 結(jié)論:
調(diào)用的順序?yàn)椋?構(gòu)造函數(shù) > @Autowired > @PostConstruct
(2) 作用:
@PostConstruct注解的方法在項(xiàng)目啟動的時(shí)候執(zhí)行這個(gè)方法,也可以理解為在spring容器啟動的時(shí)候執(zhí)行,可作為一些數(shù)據(jù)的常規(guī)化加載,比如讀取數(shù)據(jù)字典之類、目錄樹緩存
二、Spring框架中在bean初始化和銷毀時(shí)候執(zhí)行實(shí)現(xiàn)方式
Spring框架中在bean初始化和銷毀時(shí)候執(zhí)行某個(gè)方法的三種實(shí)現(xiàn)方式。
(1)Spring框架中通過注解@PostConastruct 和 @PreDestroy來實(shí)現(xiàn)Bean初始化執(zhí)行和銷毀時(shí)候執(zhí)行方法;
(2)Spring框架中通過實(shí)現(xiàn)接口InitializingBean ,DisposableBean來實(shí)現(xiàn)Bean初始化執(zhí)行和銷毀時(shí)候執(zhí)行方法;
(3)Spring框架中通過xml配置文件中bean的init-method=“” destroy-method=""來實(shí)現(xiàn)Bean初始化執(zhí)行和銷毀時(shí)候執(zhí)行方法;
- Spring Bean執(zhí)行順序:

三、項(xiàng)目驗(yàn)證
1.MyServiceImpl
package com.huahua.myIdea.service.serviceImpl;
import com.huahua.myIdea.service.MyService;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
@Service
public class MyServiceImpl implements MyService, InitializingBean {
@Override
public int addTotal(int x, int y) {
return 0;
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("開始執(zhí)行 afterPropertiesSet 方法: MyServiceImpl");
}
@PostConstruct
public void postConstructMethod() {
System.out.println("開始執(zhí)行 PostConstruct 方法: MyServiceImpl");
}
@Autowired
private void testAutowired(){
System.out.println("開始執(zhí)行 testAutowired 方法: MyServiceImpl");
}
MyServiceImpl(){
System.out.println("開始執(zhí)行 構(gòu)造函數(shù)MyServiceImpl : MyServiceImpl");
}
}
2.測試結(jié)果

3.項(xiàng)目源碼
項(xiàng)目結(jié)構(gòu)及代碼下載,歡迎star~~

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot項(xiàng)目獲取resources目錄下文件并返回給前端的方案
我們在項(xiàng)目中經(jīng)常碰到需要讀取固定文件的場景,如模板文件,一般做法是將文件放在resources目錄下,程序通過多種方式可以順利讀取文件,這篇文章主要給大家介紹了關(guān)于Spring?Boot項(xiàng)目獲取resources目錄下文件并返回給前端的相關(guān)資料,需要的朋友可以參考下2024-07-07
Java中的拷貝數(shù)組CopyOnWriteArrayList詳解
這篇文章主要介紹了Java中的拷貝數(shù)組CopyOnWriteArrayList詳解,ArrayList和LinkedList都不是線程安全的,如果需要線程安全的List,可以使用synchronizedList來生成一個(gè)同步list,但是這個(gè)同步list的方法都是通過synchronized修飾來保證同步的,需要的朋友可以參考下2023-12-12
SpringCloud?Nacos服務(wù)分級存儲模型詳解
Nacos服務(wù)分級存儲模型是Nacos存儲服務(wù)注冊信息和配置信息的核心模型之一,本文將對?Nacos?服務(wù)分級存儲模型進(jìn)行深入解析,感興趣的朋友一起看看吧2024-02-02
java開發(fā)ShardingSphere的路由引擎類型示例詳解
這篇文章主要為大家介紹了java開發(fā)ShardingSphere的路由引擎類型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
sms4j?2.0?全新來襲功能的調(diào)整及maven變化詳解
這篇文章主要介紹了sms4j?2.0?全新來襲功能的調(diào)整及maven變化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
springboot?vue測試平臺開發(fā)調(diào)通前后端環(huán)境實(shí)現(xiàn)登錄
這篇文章主要介紹了springboot?vue測試平臺開發(fā)調(diào)通前后端環(huán)境實(shí)現(xiàn)登錄詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Spring使用@Autowired注解實(shí)現(xiàn)自動裝配方式
這篇文章主要介紹了Spring使用@Autowired注解實(shí)現(xiàn)自動裝配方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09

