[英]What Spring class is responsible for executing schema.sql?
I am making my own ORM and I'm at the point where I need to push the SQL code I've generated from my entity classes to the database.我正在制作自己的 ORM 并且我需要将我从实体类生成的 SQL 代码推送到数据库。 I do not aim to copy how Spring does it but rather see what phase of the lifecycle it runs in and how exactly.我的目的不是复制 Spring 是如何做到的,而是看看它运行在生命周期的哪个阶段以及如何准确。
Thanks谢谢
The actual class that read schema.sql
and execute it is DataSourceInitializer#createSchema()
.读取schema.sql
并执行它的实际 class 是DataSourceInitializer#createSchema()
。
Here are the high level flow which somehow triggers it:这是以某种方式触发它的高级流程:
DataSource
class is found from the class-path, spring-boot auto-configuration will enable DataSourceAutoConfiguration
如果从类路径中找到DataSource
class,则 spring-boot 自动配置将启用DataSourceAutoConfiguration
DataSourceAutoConfiguration
imports DataSourceInitializationConfiguration
DataSourceAutoConfiguration
导入DataSourceInitializationConfiguration
DataSourceInitializationConfiguration
registers DataSourceInitializerPostProcessor
which will be executed and force initialising DataSourceInitializerInvoker
. DataSourceInitializationConfiguration
注册DataSourceInitializerPostProcessor
将被执行并强制初始化DataSourceInitializerInvoker
。DataSourceInitializerInvoker
's afterPropertiesSet
will then execute DataSourceInitializer#createSchema()
to read and execute schema.sql
然后DataSourceInitializerInvoker
的afterPropertiesSet
将执行DataSourceInitializer#createSchema()
以读取并执行schema.sql
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.