【问题标题】:What Spring class is responsible for executing schema.sql?哪个 Spring 类负责执行 schema.sql?
【发布时间】:2020-06-04 23:51:06
【问题描述】:

我正在制作自己的 ORM,我需要将我从实体类生成的 SQL 代码推送到数据库。我的目的不是复制 Spring 是如何做到的,而是看看它运行在生命周期的哪个阶段以及如何准确运行。

谢谢

【问题讨论】:

    标签: java spring schema


    【解决方案1】:

    读取schema.sql并执行它的实际类是DataSourceInitializer#createSchema()

    这是以某种方式触发它的高级流程:

    1. 如果从 class-path 中找到 DataSource 类,spring-boot 自动配置将启用 DataSourceAutoConfiguration
    2. DataSourceAutoConfiguration 导入 DataSourceInitializationConfiguration
    3. DataSourceInitializationConfiguration 寄存器 DataSourceInitializerPostProcessor 将被执行并强制初始化 DataSourceInitializerInvoker
    4. DataSourceInitializerInvokerafterPropertiesSet 然后会执行 DataSourceInitializer#createSchema() 来读取并执行 schema.sql

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 2021-10-06
      • 2011-11-07
      • 1970-01-01
      • 2016-05-14
      相关资源
      最近更新 更多