我有一个POJO类,类变量是通过@Value注释注入的。我正在尝试使用javax验证api来验证我的类变量&所以我尝试了@NotNull、@NotEmpty和@NotBlank,但是它们似乎都不是在验证或抛出任何类型的异常,即使在application.yml文件中存在空白/空值时也是如此。对于如何使用javax验证api在这里验证我的POJO,有什么想法吗?PS:我正在使用lombok来生成我的getter/setter。
下面是我的示例代码!
POJO类:
@Component
@Getter
@Setter
public class Credentials {
@NotBlank
@Value("${app.username}")
private String user_name;
@NotBlank
@Value("${app.password}")
private String password;
}下面是application.yml文件:
app:
username: '#{null}'
password: passWord即使我提供了一个空白值,当我试图在控制台中打印这些值时,也不会有任何异常。
发布于 2020-05-30 03:11:04
我认为this是可以应用的。
@Data
@RequiredArgsConstructor
public class Credentials {
private final String user_name;
private final String password;
}@Configuration
@Validated
public class CredentialsConfiguration {
@Bean
public Credentials credentials(
@NotBlank @Value("${app.username}") final String user_name,
@NotBlank @Value("${app.password}") final String password) {
return new Credentials(user_name, password);
}
}发布于 2020-05-29 17:29:48
验证只适用于@ConfigurationProperties带注释的类,并结合使用@EnableConfigurationProperties。
您没有得到任何例外的原因是,@Value只在属性中查找属性的存在,它不关心该属性的值是什么,除非您分配了一个错误匹配的数据类型值。
https://stackoverflow.com/questions/62091358
复制相似问题