Frage

Ich möchte eine Feder Bean erstellen, die den Wert eines Doppel hält. So etwas wie:

<bean id="doubleValue" value="3.7"/>
War es hilfreich?

Lösung

Deklarieren es wie folgt aus:

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

Und wie folgt verwenden:

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

Andere Tipps

Es ist auch erwähnenswert, dass nach Bedarf in Abhängigkeit Ihre eigene Bean definiert, kann nicht die beste Wahl für Sie sein.

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

ist ein guter Weg, um einen konstanten Wert in einer Klasse und Standard Bindemittel gespeichert zuzugreifen auch für Konvertierungen sehr gut funktionieren z.B.

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

Ich habe mich auf diese Weise viele meiner Bohnen ersetzt gefunden, gekoppelt mit Eigenschaften meine Werte Datei zu definieren (für die Wiederverwendung Zwecke). Was so aussehen verwendet

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

wird in das Refactoring:

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

Warum Sie nicht nur verwenden, um ein Double ? ein Grund?

Spring 2.5 +

Sie können Bohne wie dies in Java Config definieren:

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

Sie können diese Bohne wie dies in Ihrem Programm verwenden:

@Autowired
Double doubleBean;

public void printDouble(){
    System.out.println(doubleBean); //sample usage
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top