كيف أقوم بإنشاء حبة ربيع لجافا بدائية مزدوجة؟

StackOverflow https://stackoverflow.com/questions/59850

  •  09-06-2019
  •  | 
  •  

سؤال

أرغب في إنشاء حبة ربيع تحمل قيمة مضاعفة.شيء مثل:

<bean id="doubleValue" value="3.7"/>
هل كانت مفيدة؟

المحلول

أعلنها هكذا:

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

واستخدم مثل هذا:

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

نصائح أخرى

تجدر الإشارة أيضًا إلى أنه اعتمادًا على حاجتك، قد لا يكون تحديد الفول الخاص بك هو أفضل رهان بالنسبة لك.

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

لماذا لا تستخدم فقط مزدوج؟لأي سبب؟

الربيع 2.5+

يمكنك تحديد الفول مثل هذا في تكوين Java:

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

يمكنك استخدام هذه الفولة مثل هذا في برنامجك:

@Autowired
Double doubleBean;

public void printDouble(){
    System.out.println(doubleBean); //sample usage
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top