设置@Value以使用@ConfigurationProperties前缀

che*_*ens 5 java spring spring-boot

我正在使用具有以下值的属性文件: com.abc.cpuUtilization.okThreshold = 0.5

我想使用以下配置类:

@Component
@ConfigurationProperties(prefix="com.abc")
public class SystemConfiguration{

  @Value("${cpuUtilization.okThreshold}")
  private Double cpuUtilizationOkThreshold;

  // getters and setters of cpuUtilizationOkThreshold
  }
}
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外Could not resolve placeholder 'cpuUtilization.okThreshold'

当设置@Value为:"${com.abc.cpuUtilization.okThreshold}"它可以工作,但它使代码看起来丑陋和麻烦。

有没有办法配置此类,这样我就不必为注释编写整个前缀@Value

小智 0

对于配置属性,您只需使用与变量相同的键添加属性文件中的值。

在应用程序属性中。

com.abc.cpuUtilization.okThreshold=123
Run Code Online (Sandbox Code Playgroud)

你的班级应该是:

@Component
@ConfigurationProperties(prefix="com.abc.cpuUtilization")
public class SystemConfiguration{

  private Double okThreshold;

  }
}
Run Code Online (Sandbox Code Playgroud)