9

我想创建一个拥有双精度值的弹簧豆。就像是:

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

4 回答 4

14

像这样声明它:

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

并像这样使用:

<bean id="someOtherBean" ...>
   <property name="value" ref="doubleValue"/>
</bean>
于 2008-09-12T20:28:57.323 回答
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}"/>
于 2008-09-16T15:51:25.507 回答
0

你为什么不直接使用Double?任何原因?

于 2008-09-12T20:15:24.453 回答
0

春天 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
}
于 2018-02-14T12:13:04.687 回答