java - 确保在 webserver 在 Spring Boot 中暴露 HTTP 之前执行代码
问题描述
在 Spring Boot Web 应用程序中,是否可以确保在嵌入式 Web 服务器(tomcat)侦听传入请求之前执行某些代码?
在应用程序响应来自我的 REST API 的任何请求之前,我需要运行一些数据库迁移脚本。我怎样才能做到这一点?目前,我的迁移脚本组件用于@EventListener
,ContextRefreshedEvent
但为时已晚。之前已经记录了以下行:
osbwembedded.tomcat.TomcatWebServer:Tomcat 在端口上启动:8091 (http),上下文路径为 ''
解决方案
您可以在用于连接数据库(存储库)的 bean 中使用 @PostConstruct 方法并在那里编写运行脚本所需的代码,此代码将在创建 bean 之后但在服务器运行之前执行。
示例:https ://www.baeldung.com/spring-postconstruct-predestroy
推荐阅读
- oauth-2.0 - 是否可以在 OAuth 客户端应用程序上控制用户访问?
- python - python,pandas,查找前四个品牌的平均价格,dataframe
- java - Jackson,基于另一个属性(依赖属性)反序列化属性
- pdf - PDF Kable 重叠条纹/突出显示
- sql - 如何在 Redshift 中对多个表执行相同的查询
- excel - 了解销售了多少种产品配置
- regex - Hive 查询以提取具有字母数字字符的列
- python-3.x - 如何使用偏导数实现梯度下降算法?
- homebrew - 未能使用 brew 将 swiftlint 从 0.44.0 降级到 0.43.1
- html - 使用“照片库”选项的 Html 文件输入在 IOS 上不起作用