我需要仅在应用程序完成启动后才使端点可用。
目前,我正在尝试使用 Spring ApplicationListener/ContextRefreshedEvent 来捕获 Spring 完成初始化的时间。
此时有什么方法可以让它启动我的自定义 Rest 端点吗?我尝试使用:
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReadinessIndicator.class);
beanFactory.registerBeanDefinition("readinessIndicator", builder.getBeanDefinition());
在运行时添加 bean,但它看起来并没有被初始化。
最佳答案
正如 Aleksander 所说,端点在应用程序完成加载后可用。如果您想在所有初始化过程之后触发某些操作,您可以在具有 main 方法的类中的方法上使用 @PostConstruct 注释。示例
@PostConstruct
public void afterInit() {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReadinessIndicator.class);
beanFactory.registerBeanDefinition("readinessIndicator", builder.getBeanDefinition());
}
关于java - Spring Rest Controller - 启动顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39163998/