SpringBoot-@PostConstruct用法

被@PostConstruct修飾的方法會在服務器加載Servlet的時候運行,並且只會被服務器執行一次。PostConstruct在構造函數之後執行,init()方法之前執行。PreDestroy()方法在destroy()方法知性之後執行。

@PostConstruct註解的方法將會在依賴注入完成後被自動調用。

舉個例子:

有一個service:

@Service
public class PostConService {
	
	public PostConService() {
		System.out.println("service 無參構造器");
		
	}
	
	public void echoService() {
		System.out.println("PostConService method : echService");
	}

}

一個controller

@RestController
public class PostConController {
	
	@Autowired
	PostConService conService;
	
	public PostConController() {
		System.out.println("controller 無參構造器:");
		System.out.println("controller 無參構造器:conService:" + conService);
	}
	
	@PostConstruct
	public void init() {
		
		System.out.println("controller init method,conService:" + conService);
	}
	

}

serviec注入到controller中,當spring容器啓動時,加載順序(打印順序)如下:

        controller 無參構造器:
        controller 無參構造器:conService:null
        service 無參構造器
        controller init method,conService:cn.edu.bjfu.service.PostConService@4212a0c8

 

即在init方法中,service即初始化完成

總體來說,順序如下:Constructor >> @Autowired >> @PostConstruct

 

 

 

 

 

發佈了80 篇原創文章 · 獲贊 36 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章