从application.yml设置类级别的注释值
我试图使用allication.yaml将类级别注释的配置外部化。但是春天并没有加载正确。任何想法如何做到这一点?
这是我正在尝试设置的服务等级
@Service @DefaultProperties(threadPoolProperties = {
@HystrixProperty(name = "coreSize", value =
"${cyclone.hystrix.lease.thread.coreSize}") })
public class LeaseService {
}
和application.yml
cyclone: hystrix:
lease:
thread:
coreSize: 10
遇到错误-
java.lang.IllegalArgumentException: bad property value. property name 'coreSize'. Expected int value, actual = ${cyclone.hystrix.lease.thread.coreSize}
我可以使用@Value(“ $
{cyclone.hystrix.lease.thread.coreSize}”)加载相同的属性。但无法处理上述情况。任何有关如何正确配置此配置的帮助?
回答:
为了使spring评估占位符,您需要在使用类时使用PropertySourcesPlaceholderConfigurer
静态@Bean
方法注册
Bean @Configuration
,如下所示:
@Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
根据JavaDoc:
PlaceholderConfigurerSupport的特殊化,可针对当前的Spring
Environment及其PropertySources解析bean定义属性值和@Value注释中的$ {…}占位符。
以上是 从application.yml设置类级别的注释值 的全部内容, 来源链接: utcz.com/qa/417660.html