كيف أقوم بإنشاء حبة ربيع لجافا بدائية مزدوجة؟
سؤال
أرغب في إنشاء حبة ربيع تحمل قيمة مضاعفة.شيء مثل:
<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
}
لا تنتمي إلى StackOverflow