2016-11-04 3 views
2

inputstreamを使用するときの私の現在のコードです。 prop =新しいプロパティ。どのように解析できますか?アプリケーションのプロパティを書き留めますか?

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")); 

私は最近、スプリングブーツの方法で自分のアプリケーションクラスを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; 

答えて

2

@Valueあなたが注入されたプロパティを変更するために呼び出すメソッドを指定することができます:

@Value("#{T(java.lang.Float).parseFloat('${THRESHOLD_CRITICAL}')}") 
private float criticalThreshold; 

私はそれをテストし、それはまた、完全なパッケージ名なしで動作します:

@Value("#{T(Float).parseFloat('${THRESHOLD_CRITICAL}')}") 
private float criticalThreshold; 
+0

私はこれを試して、それは動作しません – developer

+0

申し訳ありませんが、(パッケージ全体を指定する必要があります)T – alexbt

+0

の接頭辞は、それを行う良い方法のように思えるが、まだデバッグ、固定されていません – developer

2

それは以下のアプローチのように追加の変数を必要としないとしてあなたはアレックスによって提案されたソリューションを参照することができます。

あなたが直接それを行うことはできませんが、@PostConstruct、以下のような1以上の可変criticalThresholdFloatValueを宣言することを達成することができます:

@Value("${THRESHOLD_CRITICAL}") 
private String criticalThreshold; 

private float criticalThresholdFloatValue; 

@PostConstruct 
public void init() { 
    criticalThresholdFloatValue = Float.parseFloat(criticalThreshold); 
} 

さて、あなたは豆で使用しているこれまでcriticalThresholdFloatValueを使用して起動することができますメソッド。

+0

注釈を付けることも可能であろうこの例のようなセッターメソッド? http://stackoverflow.com/questions/317687/how-can-i-inject-a-property-value-into-a-spring-bean-which-was-configured-using –

+0

Joe:どのようにするかわからないそれを行うが、上記の私のアプローチは動作しますが、追加のvarが必要です。 – developer

関連する問題