从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

回到顶部