Spring Boot禁止财产价值

时间:2018-01-10 09:14:59

标签: java spring hibernate spring-boot

有没有办法禁止在Spring配置中传递给定的属性值(例如application.proeprties)。

例如,如果我们想在使用hibernate时防止意外的数据库模式迁移。 我们假设我们只想使用属性validate的值spring.jpa.hibernate.ddl-auto。如果值不是validate则抛出异常或将其覆盖到validate

这可能吗?也许有一些" hook"或预处理器,其中可以在应用程序启动之前检查属性。

1 个答案:

答案 0 :(得分:3)

您可以使用EnvironmentPostProcessor查看环境并执行您喜欢的任何操作。 This section of the documentation解释了如何做到这一点。

  

还可以在使用EnvironmentPostProcessor刷新应用程序上下文之前自定义环境。每个实现都应该在META-INF / spring.factories中注册:

     

org.springframework.boot.env.EnvironmentPostProcessor=com.example.YourEnvironmentPostProcessor