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

时间:2018-06-04 04:01:24

标签: java hibernate spring-boot jpa

有没有办法验证" spring.jpa.hibernate.ddl-auto"应用程序启动期间的属性,以确保它只设置为none?我想强制所有部署(包括dev)使用liquibase。

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

2 个答案:

答案 0 :(得分:0)

作为最佳实践,您可以维护一个通用的application.properties/yml文件并在其中设置属性(spring.jpa.hibernate.ddl-auto)。然后,维护一个单独的属性/ yml文件(application_*.properties/yml),默认情况下将从application.properties/yml文件中获取属性。 此外,您可以维护其他常见的"父文件中的属性。

答案 1 :(得分:0)

您可以通过实施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.

来使其更加详细