Domanda

Mi piacerebbe creare un fagiolino primaverile che abbia il valore di un doppio.Qualcosa di simile a:

<bean id="doubleValue" value="3.7"/>
È stato utile?

Soluzione

Dichiararlo così:

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

E usa in questo modo:

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

Altri suggerimenti

Vale anche la pena notare che, a seconda delle tue esigenze, definire il tuo bean potrebbe non essere la soluzione migliore per te.

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

è un buon modo per accedere a un valore costante memorizzato in una classe e anche i raccoglitori predefiniti funzionano molto bene per le conversioni, ad es.

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

Mi sono ritrovato a sostituire molti dei miei bean in questo modo, insieme a un file delle proprietà che definisce i miei valori (a scopo di riutilizzo).Quello che prima assomigliava a questo

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

viene rifattorizzato in questo:

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

Perché non usi semplicemente a Doppio?qualche ragione?

Primavera 2.5+

Puoi definire il bean in questo modo nella configurazione Java:

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

Puoi usare questo bean in questo modo nel tuo programma:

@Autowired
Double doubleBean;

public void printDouble(){
    System.out.println(doubleBean); //sample usage
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top