在我的springboot程序中,我想验证我的配置。
假设我的配置如下:
@Component
@ConfigurationProperties("jms")
public class JmsConfiguration {
protected String brokerType = "";
protected String host = "";
protected String port = "";
}
我知道我可以用 @Validated
用于非常基本检查的注解,例如。
@Component
@ConfigurationProperties("jms")
@Validated
public class JmsConfiguration {
protected String brokerType = "";
protected String host = "";
@Positive
protected String port = ""; /// must be strictly positive
}
但是我怎样才能做更复杂的检查呢?例如,我如何确保 brokerType
是否 ems
或者 amq
但是没有别的了?
或者更复杂的是,如何确保端口大于1000,如果且仅当 brokerType
是 amq
(这是个愚蠢的例子)
我试着用 @Constraint
但是我没有成功(但是,我不确定这是做我想做的事情的最好方法…)
谢谢你的帮助
你好,菲利普
1条答案
按热度按时间at0kjp5o1#
这个
brokerType
可以验证为ems
或者amq
通过创建enum
为了它。Spring
@ConfigurationProperties
对枚举具有一流的支持。请看这里的例子https://www.logicbig.com/tutorials/spring-framework/spring-boot/configuration-properties-vs-value-conversion.html
以上链接的相关示例