我要求仅在我的应用程序完成启动后才能使端点可用。
当前,我正在尝试使用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());
}