【发布时间】:2018-08-12 11:16:42
【问题描述】:
我需要在启动时验证属性 bean,如果验证失败,应用程序将无法启动。
我有一个 bean,其中包含环境变量提供的配置:
@Component
public class AdminConfig
{
@NotNull( message = "username can't be null")
@NotEmpty( message = "username can't be empty")
@Value(value="#{environment.username}")
/** username to the admin portal **/
private String username;
@NotNull(message = "password can't be null")
@NotEmpty(message = "password can't be empty")
@Value(value="#{environment.password}")
/** password to the admin portal **/
private String password;
}
我有一个驱动类:
/**
* Driver class.
*/
@EnableAutoConfiguration
public class Main {
/**
* Driver method.
* @param args Command line arguments.
*/
public static void main(final String[] args) {
SpringApplication.run(Main.class, args);
}
}
我有以下 POM 条目:
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<!-- Validation annotations -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
</dependencies>
当我在不设置环境变量的情况下启动应用程序时,AdminConfig bean 被创建但验证不会触发并且应用程序启动。
我希望/要求应用程序由于验证失败而无法启动。
【问题讨论】:
标签: spring-boot bean-validation hibernate-validator