我要求仅在我的应用程序完成启动后才能使端点可用。

当前,我正在尝试使用Spring ApplicationListener / ContextRefreshedEvent来捕获Spring完成的初始化。

有什么方法可以启动我的自定义Rest终结点吗?我尝试使用:

BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReadinessIndicator.class);
beanFactory.registerBeanDefinition("readinessIndicator", builder.getBeanDefinition());


要在运行时添加Bean,但看起来好像没有初始化它。

最佳答案

正如Aleksander所说,端点可以在应用程序完成后加载。如果要在所有初始化过程之后触发某些动作,可以在具有主方法的类中的方法上使用@PostConstruct批注。例

@PostConstruct
public void afterInit() {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReadinessIndicator.class);
    beanFactory.registerBeanDefinition("readinessIndicator", builder.getBeanDefinition());
}

09-11 02:21