java - Spring Rest Controller - 启动顺序

标签 java spring rest

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

目前,我正在尝试使用 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/

相关文章:

json - OPTIONS 返回 204,POST 返回 200 但数据库中没有输入数据

java - 在同一个Java数组中调用扩展类函数

api - Intuit IPP Rest API 查询字符串转义

java - 您能否为 Java 和 Selenium 中的显式等待创建通用或可重用的方法?

java - 使用 RabbitMQ 时可以使用 spring.cloud.stream.bindings.<channel>.group 来获得一次性传递吗?

Spring "spring.profiles.include"覆盖

java - 如何处理并发 API 调用

c# - Restful Web 服务中的 URL

java - 在java中,在磁盘上存储对象的最佳方式是什么?

java - 如何让 IntellijIDEA 忽略正在进行的类文件?