我使用inputstream时的当前代码。 prop = new properties;
Application = prop.getProperty("Application");
servers = prop.getProperty("SERVERS");
username = prop.getProperty("USER_NAME");
password = prop.getProperty("PASSWORD");
Float criticalThreshold = Float.parseFloat(prop.getProperty("THRESHOLD_CRITICAL"));
Float badThreshold = Float.parseFloat(prop.getProperty("THRESHOLD_BAD"));
我最近使用spring boots方式将我的应用程序属性实现到我的java类中。
@Value("${Application}")
private String Application;
@Value("${SERVERS}")
private String servers;
@Value("${USER_NAME}")
private String username;
@Value("${PASSWORD}")
private String password;
但我不知道如何重写Float.parseFloat
Float criticalThreshold = Float.parseFloat(prop.getProperty("THRESHOLD_CRITICAL"));
Float badThreshold = Float.parseFloat(prop.getProperty("THRESHOLD_BAD"));
我试过但它会自动给我一个编译错误。
@Value("${THRESHOLD_CRITICAL}")
private Float criticalThreshold;
@Value("${THRESHOLD_BAD}")
private Float badThreshold;
答案 0 :(得分:2)
您可以参考Alex建议的解决方案,因为它不需要额外的变量,如下面的方法。
您无法直接执行此操作,但您可以实现@PostConstruct
并再声明一个变量criticalThresholdFloatValue
,如下所示:
@Value("${THRESHOLD_CRITICAL}")
private String criticalThreshold;
private float criticalThresholdFloatValue;
@PostConstruct
public void init() {
criticalThresholdFloatValue = Float.parseFloat(criticalThreshold);
}
现在,您可以开始在bean方法中使用criticalThresholdFloatValue
。
答案 1 :(得分:2)
@Value
允许您指定要调用以更改注入属性的方法:
@Value("#{T(java.lang.Float).parseFloat('${THRESHOLD_CRITICAL}')}")
private float criticalThreshold;
我测试了它,它也没有完整的包名称:
@Value("#{T(Float).parseFloat('${THRESHOLD_CRITICAL}')}")
private float criticalThreshold;