Java ダブルプリミティブ用の Spring Bean を作成するにはどうすればよいですか?
質問
double の値を保持する Spring Bean を作成したいと思います。何かのようなもの:
<bean id="doubleValue" value="3.7"/>
解決
次のように宣言します。
<bean id="doubleValue" class="java.lang.Double">
<constructor-arg index="0" value="3.7"/>
</bean>
そして次のように使用します:
<bean id="someOtherBean" ...>
<property name="value" ref="doubleValue"/>
</bean>
他のヒント
ニーズによっては、独自の Bean を定義することが最善策ではない可能性があることにも注意してください。
<util:constant static-field="org.example.Constants.FOO"/>
これはクラスに格納されている定数値にアクセスするための良い方法であり、デフォルトのバインダーも変換に非常にうまく機能します。
<bean class="Foo" p:doubleValue="123.00"/>
私は、(再利用目的で) 値を定義するプロパティ ファイルと組み合わせて、多くの Bean をこの方法で置き換えていることに気づきました。以前はこのように見えていたもの
<bean id="d1" class="java.lang.Double">
<constructor-arg value="3.7"/>
</bean>
<bean id="foo" class="Foo">
<property name="doubleVal" ref="d1"/>
</bean>
これはリファクタリングされます:
<bean
id="propertyFile"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="classpath:my.properties"
/>
<bean id="foo" class="Foo" p:doubleVal="${d1}"/>
を使用しないのはなぜですか ダブル?何らかの理由?
スプリング 2.5+
Java 構成では次のように Bean を定義できます。
@Configuration
public class BeanConfig {
@Bean
public Double doubleBean(){
return new Double(3.7);
}
}
この Bean はプログラム内で次のように使用できます。
@Autowired
Double doubleBean;
public void printDouble(){
System.out.println(doubleBean); //sample usage
}
所属していません StackOverflow