【发布时间】:2020-09-17 13:12:47
【问题描述】:
我想验证 application.properties 中的值。
我使用@Value 进行注入,并使用@NotBlank 来验证使用@Configuration 注释的类中的方法参数。
createSslContext(
@Value("#{systemProperties['javax.net.ssl.trustStore']}")
@NotBlank(message = "Truststore is needed")
String path)
我已经包含了hibernate-validator 和hibernate-validator-annotation-processor 属性。使用 Spring 2.2.0.RELEASE。
它不起作用。该值已注入,但未验证。我错过了什么?
【问题讨论】:
-
更喜欢
@ConfigurationProperties而不是裸露的@Value,@Valid在那里工作得很好。 (另外,如果您使用的是 Boot,您通常应该使用各种特定于 Spring 的配置来获得信任,而不是一揽子系统属性。) -
@chrylis-cautiouslyoptimistic-我不知道 Spring 特定的配置,直到我用谷歌搜索它。 “附录 A. 常见应用程序属性”是我找到的。 ...我使用信任库创建一个 SSL 上下文,然后创建一个 HttpClient,然后是一个 HttpComponentsClientHttpRequestFactory,最后是一个 RestTemplate。这是一种痛苦。也许有更好的方法?
-
如果你想创建自己的私有的、完全不受管理的 RestTemplate,你可以这样做,但通常你会使用 Boot 中的
RestTemplateBuilder。有关您的特定用例的更多详细信息可能会有所帮助。
标签: java spring-boot jsr305