如何为Java双原语创建一个spring bean?

Ale*_*x B 8 java double spring

我想创建一个保存double值的spring bean.就像是:

<bean id="doubleValue" value="3.7"/>
Run Code Online (Sandbox Code Playgroud)

Pav*_*man 12

声明如下:

<bean id="doubleValue" class="java.lang.Double">
   <constructor-arg index="0" value="3.7"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

并使用这样的:

<bean id="someOtherBean" ...>
   <property name="value" ref="doubleValue"/>
</bean>
Run Code Online (Sandbox Code Playgroud)


小智 6

值得注意的是,根据您的需要,定义您自己的bean可能不是您的最佳选择.

<util:constant static-field="org.example.Constants.FOO"/>
Run Code Online (Sandbox Code Playgroud)

是访问存储在类中的常量值的好方法,默认绑定器也可以很好地用于转换,例如

<bean class="Foo" p:doubleValue="123.00"/>
Run Code Online (Sandbox Code Playgroud)

我发现自己用这种方式替换了很多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>
Run Code Online (Sandbox Code Playgroud)

被重构为:

<bean
  id="propertyFile"
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
  p:location="classpath:my.properties"
/>
<bean id="foo" class="Foo" p:doubleVal="${d1}"/>
Run Code Online (Sandbox Code Playgroud)