Pregunta

Me gustaría crear un Spring Bean que tenga el valor de un doble.Algo como:

<bean id="doubleValue" value="3.7"/>
¿Fue útil?

Solución

Declararlo así:

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

Y úsalo así:

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

Otros consejos

También vale la pena señalar que, dependiendo de sus necesidades, definir su propio frijol puede no ser la mejor opción para usted.

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

es una buena manera de acceder a un valor constante almacenado en una clase y las carpetas predeterminadas también funcionan muy bien para conversiones, p.

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

Me encontré reemplazando muchos de mis beans de esta manera, junto con un archivo de propiedades que define mis valores (para fines de reutilización).Lo que solía verse así

<bean id="d1" class="java.lang.Double">
  <constructor-arg value="3.7"/>
</bean>
<bean id="foo" class="Foo">
  <property name="doubleVal" ref="d1"/>
</bean>

se refactoriza en esto:

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

¿Por qué no usas simplemente un Doble?¿cualquier razón?

Primavera 2.5+

Puedes definir un bean como este en la configuración de Java:

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

Puedes usar este bean así en tu programa:

@Autowired
Double doubleBean;

public void printDouble(){
    System.out.println(doubleBean); //sample usage
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top