java - 确保在 Spring Boot 中 Web 服务器公开 HTTP 之前执行代码

标签 java spring spring-boot

在 Spring Boot Web 应用程序中,是否可以确保在嵌入式 Web 服务器(tomcat)监听传入请求之前执行某些代码?

我有一些数据库迁移脚本,需要在应用程序响应来自 REST API 的任何请求之前运行。我怎样才能做到这一点?目前,我的迁移脚本组件使用 @EventListener 来处理 ContextRefreshedEvent 但为时已晚。以下行之前已记录:

o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8091 (http) with context path ''

最佳答案

您可以在用于连接数据库(存储库)的bean中使用@PostConstruct方法,并在那里编写运行脚本所需的代码,该代码将在之后执行bean 是在服务器运行之前创建的。

示例:https://www.baeldung.com/spring-postconstruct-predestroy

关于java - 确保在 Spring Boot 中 Web 服务器公开 HTTP 之前执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65564839/

相关文章:

java - 在 Java 中,AtomicInteger compareAndSet() 与 synchronized 关键字的性能如何?

java - 如何使用 Spring Cloud Stream 应用程序启动器 TCP 处理消息

rest - springboot RestController 未调用

java - Spring AMQP错误: Listener method could not be invoked with the incoming message

java - 运行 spring mvc + spring boot gradle java 9 项目,最终出现 java.lang.NoClassDefFoundError : java/sql/SQLException

java - 我应该在单独的机器上安装 ActiveMQ 吗?

java - 向数据库插入数据时出错

java - 如何使用 java 8 的 forEach 内部的方法引用来测试谓词

java - 如何使用 Jenkins 运行 Intellij IDEA 创建的 Maven 项目?

java - Spring安全授权