【发布时间】:2020-06-04 23:51:06
【问题描述】:
我正在制作自己的 ORM,我需要将我从实体类生成的 SQL 代码推送到数据库。我的目的不是复制 Spring 是如何做到的,而是看看它运行在生命周期的哪个阶段以及如何准确运行。
谢谢
【问题讨论】:
我正在制作自己的 ORM,我需要将我从实体类生成的 SQL 代码推送到数据库。我的目的不是复制 Spring 是如何做到的,而是看看它运行在生命周期的哪个阶段以及如何准确运行。
谢谢
【问题讨论】:
读取schema.sql并执行它的实际类是DataSourceInitializer#createSchema()。
这是以某种方式触发它的高级流程:
DataSource 类,spring-boot 自动配置将启用 DataSourceAutoConfiguration
DataSourceAutoConfiguration 导入 DataSourceInitializationConfiguration DataSourceInitializationConfiguration 寄存器 DataSourceInitializerPostProcessor 将被执行并强制初始化 DataSourceInitializerInvoker。DataSourceInitializerInvoker 的 afterPropertiesSet 然后会执行 DataSourceInitializer#createSchema() 来读取并执行 schema.sql
【讨论】: