![](/img/trans.png)
[英]spring.jpa.hibernate.ddl-auto=create is not working in Hibernate 5 with SpringBoot 2.0
[英]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.