繁体   English   中英

在springboot启动期间验证“ spring.jpa.hibernate.ddl-auto”

[英]Validate “spring.jpa.hibernate.ddl-auto” during springboot startup

有没有一种方法可以在应用程序启动期间验证“ spring.jpa.hibernate.ddl-auto”属性,以确保仅将其设置为none? 我想强制所有部署(包括开发人员)使用liquibase。

编辑:-我还需要确保不会在生产中意外设置此属性,否则可能会擦除数据。

最佳做法是,您可以维护一个通用的application.properties/yml文件,并在那里设置属性( spring.jpa.hibernate.ddl-auto )。 然后,维护一个单独的property / yml文件( application_*.properties/yml ),默认情况下将从该application application_*.properties/yml文件中获取属性。 另外,您可以在父文件中维护其他“公共”属性。

您可以通过实现ApplicationListener<ContextRefreshedEvent>类来启动应用程序,例如:

@Component
public class YourListner implements ApplicationListener<ContextRefreshedEvent> {

    @Value("${spring.jpa.properties.hibernate.ddl-auto}")
    private String hibernateDdlAuto;


    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {

        if (!"none".equalsIgnoreCase(hibernateDdlAuto))
            throw new MyValidationException();

    }
}

此外,您甚至可以通过注册自己的FailureAnalyzer使其更加冗长

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM