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

时间:2008-09-12 20:12:53

标签: java spring double

我想创建一个保存double值的spring bean。类似的东西:

<bean id="doubleValue" value="3.7"/>

4 个答案:

答案 0 :(得分:12)

声明如下:

<bean id="doubleValue" class="java.lang.Double">
   <constructor-arg index="0" value="3.7"/>
</bean>

并像这样使用:

<bean id="someOtherBean" ...>
   <property name="value" ref="doubleValue"/>
</bean>

答案 1 :(得分:6)

值得注意的是,根据您的需要,定义您自己的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 :(得分:0)

为什么不使用 Double ?有什么原因吗?

答案 3 :(得分:0)

Spring 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
}