Pergunta

Eu gostaria de criar um feijão primavera que tenha o valor de um duplo.Algo como:

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

Solução

Declare assim:

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

E use assim:

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

Outras dicas

Também é importante notar que dependendo da sua necessidade definir seu próprio bean pode não ser a melhor aposta para você.

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

é uma boa maneira de acessar um valor constante armazenado em uma classe e os fichários padrão também funcionam muito bem para conversões, por exemplo.

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

Acabei substituindo muitos dos meus beans dessa maneira, juntamente com um arquivo de propriedades que define meus valores (para fins de reutilização).O que costumava ser assim

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

é refatorado para isso:

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

Por que você simplesmente não usa um Dobro?qualquer razão?

Primavera 2.5+

Você pode definir o bean assim na configuração Java:

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

Você pode usar este bean assim em seu programa:

@Autowired
Double doubleBean;

public void printDouble(){
    System.out.println(doubleBean); //sample usage
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top