2008-09-12 8 views

ответ

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> 
+0

В случае, если вы хотите, чтобы сократить его чуть-чуть, то `index` атрибут` конструктора-arg` элемента, как представляется необязательным. – JBert 2013-11-12 16:11:13

0

Почему вы не просто использовать Double? любая причина?

6

Стоит также отметить, что в зависимости от ваших потребностей определения собственных компонент не может быть лучшим выбором для вас.

<util:constant static-field="org.example.Constants.FOO"/> 

является хорошим способом, чтобы получить доступ к постоянному значению, хранящееся в одном классе и по умолчанию вяжущих также работает очень хорошо для преобразования, например,

<bean class="Foo" p:doubleValue="123.00"/> 

Я нашел себе замену многих из моих бобов таким образом, в сочетании с свойствами файла, описывающий свои ценности (для целей повторного использования). То, что раньше смотреть, как этот

<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}"/> 
0

Spring 2.5+

Вы можете определить компонент, как это в Java конфигурации:

@Configuration 
public class BeanConfig { 
    @Bean 
    public Double doubleBean(){ 
     return new Double(3.7); 
    } 
} 

Вы можете использовать этот bean lik е это в вашей программе:

@Autowired 
Double doubleBean; 

public void printDouble(){ 
    System.out.println(doubleBean); //sample usage 
}