繁体   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