簡體   English   中英

在 Spring 上下文初始化之后但在接受請求之前執行方法

[英]Execute method after Spring context initialized but before requests are accepted

在 Spring Boot 應用程序 (2.3) 中,是否可以在上下文初始化之后但在應用程序開始接受請求之前執行方法? 我不知道准備好接受請求是否是 spring 上下文初始化的一部分,或者這是一個單獨的步驟。

請注意,理想情況下,如果此方法引發異常,服務將無法啟動,但這不是必需的。

我試過ContextRefreshedEvent 但是,該應用程序此時正在接受請求。 (當我的ContextRefreshedEvent事件偵聽器方法正在執行時,請求可以進入並同時執行。)

(我不能使用@PostContruct ,因為我的方法取決於正在初始化的許多不同的 bean。)

具體用例是我有一個 spring 雲配置服務器。 我希望它在接受請求之前將身份驗證數據預加載到緩存中。 此數據的加載取決於正在加載的引導程序/應用程序配置文件、正在調用的ApplicationEnvironmentPreparedEvent偵聽器、正在構造的 bean 等。

正如 Andy Wilkinson 指出的(謝謝!),要做到這一點,請實現具有所需行為的 bean 方法並添加 @PostConstruct 注釋。 該方法將在所有bean 初始化(並准備好環境)之后但在服務開始接受請求之前調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM