首页 > 解决方案 > 确保在 webserver 在 Spring Boot 中暴露 HTTP 之前执行代码

问题描述

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

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

osbwembedded.tomcat.TomcatWebServer:Tomcat 在端口上启动:8091 (http),上下文路径为 ''

标签: javaspringspring-boot

解决方案


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

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


推荐阅读