有没有办法验证" spring.jpa.hibernate.ddl-auto"应用程序启动期间的属性,以确保它只设置为none?我想强制所有部署(包括dev)使用liquibase。
编辑: - 我还需要确保不会在生产中意外设置此属性,这可能会消除数据。
答案 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.
来使其更加详细