توضح هذه المقالة حقن الخصائص مثل int ، string ، array ، قائمة ، تعيين ، خريطة ، تاريخ ، إلخ.
من بينها ، يتم تحقيق حقن نوع التاريخ مع محرر السمات الذي يوفره الربيع. أولاً ، يتم استخدام فصول الكيان الخمسة.
حزمة com.jadyer.model ؛ استيراد java.util.date ؛ استيراد java.util.list ؛ استيراد java.util.map ؛ استيراد java.util.set ؛ / *** حقن الخصائص الشائعة* see in int ، string ، array ، list ، set ، map ، date*/ public class bean11 {private integer intvalue ؛ سلسلة خاصة strvalue ؛ سلسلة خاصة [] arryvalue ؛ قائمة قائمة خاصة ؛ مجموعة خاصة setValue ؛ خريطة خاصة mapvalue ؛ تاريخ التاريخ الخاص ؛ / * setter و getter لسبع سمات */} package com.jadyer.model ؛ الفئة العامة Bean22 {private Bean33 Bean33 ؛ Bean44 Bean4422 ؛ // الحقن: غير ذي صلة باسم السمة ، ولكنه يتعلق بـ setBean44 () Bean55 Bean55 ؛ / * setter و getter لثلاث سمات */} package com.jadyer.model ؛ الفئة العامة bean33 {private integer id ؛ اسم السلسلة الخاصة ؛ جنسية سلسلة خاصة / * setter و getter لثلاث سمات */} package com.jadyer.model ؛ الفئة العامة bean33 {private integer id ؛ اسم السلسلة الخاصة ؛ جنسية سلسلة خاصة / * setter و getter لثلاث سمات */} package com.jadyer.model ؛ الفئة العامة Bean44 {Private Integer ID ؛ اسم السلسلة الخاصة ؛ جنسية سلسلة خاصة عصر عدد صحيح خاص ؛ /* setter و getter من السمات الأربع هي قليلا*/} حزمة com.jadyer.model ؛ الفئة العامة Bean55 {Private String Password ؛ /* setter و getter كلمة المرور هي قليلا*/} ثم هناك محول نوع java.util.date
حزمة com.jadyer.Util ؛ استيراد java.beans.propertyEditorSupport ؛ استيراد java.text.parseException ؛ استيراد java.text.simpledateformat ؛ استيراد java.util.date ؛ /*** java.util.date editor. أي ما يعادل محول النوع. فيما يلي تحويل السلسلة إلى Type Type * seee --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ أشياء محرر خاصية مخصصة ، يجب أن ترث فئة propertyeditorsupport والكتابة فوق طريقة setastext () * seek أخيرًا ، حقن محرر الخصائص المخصصة في الربيع ، ثم * seee -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- void setastext (نص سلسلة) يلقي alfortalargumentexception {system.out.println ("================ UtildatePropertyEditor.Setastext () ===========" + text) ؛ جرب {Date Date = new SimplEdateFormat (pattern) .Parse (text) ؛ this.setValue (التاريخ) ؛ ) رمي New IncallAlargumentException (Text) ؛ // استمر في إلقاء استثناءات غير قانونية مع المعلمات لأعلى}}} ملف ApplicationContext-beans.xml يستخدم لجميع فئات الكيانات
<؟ xmlns: aop = "http://www.springframework.org/schema/aop" http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/Aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd الافتراضي-init = "true"> <!-يتم وصف السمة الافتراضية-init = "true" في السطر 49 من فئة InjectionTest.java-> <!-الافتراضي-Autowire = "byname أو bytype" هي طريقتان لتجميع الفاصوليا تلقائيًا المقدمة بواسطة SPRI0NG. للحصول على تفاصيل-> <!- ********************************************************************************************************* ********************************************************************************************************* ********************************************************************************************************* ********************************************************************************************************* ********************************************************************************************************* ********************************************************************************************************* ********************************************************************************************************* ********************************************************************************************************* سيكون الإخراج الافتراضي هو ======= utildatePropertyEditor.SetAstext () ============ يونيو 2010-> <!-أي ، إن الافتراضي-الوصاية = "صواب" لم يتم تعيينه في هذا الوقت ، مما يعني أن القيمة المتمثلة في أن تكون القيمة المتكافئة في الفاصوليا- وحقن-> <!-ميزة ذلك هي أنه إذا تم كتابة بعض التكوينات في ملف تكوين الربيع بشكل غير صحيح ، فيمكن اكتشافها على الفور-> <! فقط عندما يتم تنفيذها فعليًا ، ستكون هناك مشاكل-> <!-لفصل الربيع ، يمكنك أيضًا استخدام السمات ذات الصلة لتأخير تهيئة ملف التكوين ، أي ، الافتراضي---Init = "true"-> <! يتضمن ذلك كسول ، أي تأخير تهيئة-> <!-فقط قم بتعديل ملف تكوين الربيع ، مثل <beans xsi: schemalocation = "http: // www ...." default-init-init = "true">-> <!-نطاق الإجراء في هذا الوقت هو ملف التكوين بأكمله. وبالمثل ، يمكن أيضًا تكوين سمات الوصلات الكسول لكل علامة <Boin> بشكل منفصل-> <!-ولكن هذا لم يتم تعيينه ، ولكن يتم الانتهاء من الحقن عند إنشاء Beanfactory ، وهو مناسب للتحقق من الأخطاء-> <! ******************************************************* الطلب التحويل تلقائيًا إلى int-> <name property = "strvalue" value = "hello_spring"/> <property name = "arrayValue"> <list> <value> array11 </value> <value> Array22 </salue> </list> </list> pubine> pubine> property> property = "listvalue> <list> rip name = "setValue"> <stip> <value> set11 </value> <value> set22 </value> </set> </splense> <property name = "mapValue"> <map> <intrade key = "key11 هنا يجب أن يكون تنسيق التاريخ هو نفسه تكوين applicationContext-Editor.xml-> </boun> <bean id = "bean22"> <property name = "bean33" ref = "bean33"/> <property name = "bean44" ref = "bean44"/> <property name = "bean55" ref = value = "123"/> </ban> </bans>
ملف ApplicationContext-common.xml المستخدم في فئات الكيانات العامة
<؟ xmlns: aop = "http://www.springframework.org/schema/aop" http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/Aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd التكوين باستخدام الفاصوليا المجردة-> <!-أولاً ، حدد الخاصية المجردة لعلامة <Boin> إلى True ، ثم حدد الوالد في الآخر <beans>-> <bean id = "AbstractBean" Abstract = "true"> <property name = "id" value = "2"/> <property name = "name" value = Zhang qiling "/> Parent = "AbstractBean"/> <bean id = "bean44" parent = "ustrixtbean"> <property name = "age" value = "26"/> </bean> </beans> <! SAN "/> <property name =" sex "value =" male "/> </bean> <bean id =" bean44 "> <property name =" id "value =" 100 "/> <property name =" name "
ملف ApplicationContext-Editor.xml المستخدم لمحرر خاصية java.util.date
<؟ xmlns: aop = "http://www.springframework.org/schema/aop" http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/Aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd id = "utildatePropertyEditor"> <property name = "pattern" value = "Yyyyy MM Month DDD"/> </bean> <!- key = "java.util.date" value-ref = "utildatePropertyEditor"/> </kap> </property> </boles> <!-يمكنك أيضًا استخدام <bean> لكتابة UtildatePropertyEditor داخليًا-> <! <bean>-> <!-مثال على النحو التالي-> <!-<bean id = "customeditors"> <property name = "customeditors"> <map> <interpt key = "java.util.date"> <bean> <property name = "pattern" value = "yyyy mm month ddd ddd"/>///unter>
أخيرًا ، فئة اختبار الوحدة المكتوبة باستخدام Junit3.8
حزمة com.jadyer.junit ؛ استيراد junit.framework.testcase ؛ استيراد org.springframework.context.applicationContext ؛ استيراد org.springframework.context.support.classpathxmlapplicationContext ؛ استيراد com.jadyer.model.bean11 ؛ استيراد com.jadyer.model.bean22 ؛ الطبقة العامة propertyInjectionTest يمتد testcase {private ApplicationContext Factory ؛ Override SETUP VOID SETUP () يلقي استثناء { /**** ==== قراءة ملف تكوين واحد ==== **** / / /مصنع = جديد classPathxMLAPPlicationContext ("ApplicationContext.xml") ؛ /**** ===== اقرأ ملفات تكوين متعددة باستخدام المصفوفات ==== ****//وبهذه الطريقة ، سيتم استخدام ملفين للتكوين كسلطة واحدة ، على السطح ، مثل اثنين // في الواقع ، داخليًا ، لذلك في ملفات التكوين المتعددة ، لا يمكن تكرار المعرف بداخله/config = configlo infloce = new confer String [] {"ApplicationContext.xml" ، "ApplicationContext-Editor.xml"} ؛ // factory = classPathxMlapplicationContext (configlocations) ؛ /**** ======== استخدم نمط المطابقة*لقراءة ملفات التكوين المتعددة ===== ****///قول شائع في الصناعة: الاتفاقيات أفضل من التكوين // ، لذلك إذا كان هناك اتفاق موحد وأفضل ، يمكنك استخدام الوظائف التي يتم توفيرها من قبل Application extory = classpathxmlapplicationContext جديد ("ApplicationContext-*. xml") ؛ } /*** توضح هذه الطريقة حقن السمات الشائعة ، بما في ذلك int ، سلسلة ، صفيف ، قائمة ، تعيين ، خريطة ، حقن التاريخ* see حيث يتم تنفيذ حقن نوع التاريخ بمساعدة محرر خاصية Spring* /public void testinjection11 () {// bean11 bean11 = new Bean11 () ؛ // إذا كنت بسيطًا جديدًا ، فلن يتم حقن سماته. يجب إخراج الشرط المسبق للحقن من حاوية IOC قبل أن يضخ Bean11 Bean11 = (Bean11) Factory.getBean ("Bean11") ؛ // في هذا الوقت ، يتم الحصول على Bean11 من حاوية IOC ، لذلك سيتم حقن تبعياتها في system.out.println ("bean11.intvalue =" + bean11.getIntValue ()) ؛ system.out.println ("bean11.strvalue =" + bean11.getstrvalue ()) ؛ system.out.println ("bean11.arrayvalue =" + bean11.getArrayValue ()) ؛ System.out.println ("Bean11.ListValue =" + Bean11.getListValue ()) ؛ System.out.println ("Bean11.setValue =" + Bean11.GetSetValue ()) ؛ system.out.println ("bean11.mapvalue =" + bean11.getMapValue ()) ؛ system.out.println ("bean11.datevalue =" + bean11.getDateValue ()) ؛ } / *** توضح هذه الطريقة بشكل أساسي تجريد التكوينات العامة لتقليل مقدار التكوين* / public void testinjection22 () {bean22 bean22 = (bean22) factory.getBean ("bean22") ؛ system.out.println ("bean22.bean33.id =" + bean22.getBean33 (). getId ()) ؛ System.out.println ("Bean22.bean33.name =" + Bean22.getBean33 (). getName ()) ؛ System.out.println ("Bean22.bean33.Sex =" + Bean22.getBean33 (). getSex ()) ؛ System.out.println ("Bean22.bean44.Id =" + Bean22.getBean44 (). getId ()) ؛ System.out.println ("Bean22.bean44.Name =" + Bean22.getBean44 (). getName ()) ؛ System.out.println ("Bean22.bean44.Sex =" + Bean22.getBean44 (). getSex ()) ؛ system.out.println ("bean22.bean44.age =" + bean22.getBean44 (). getage ()) ؛ System.out.println ("Bean22.bean55.Password =" + Bean22.getBean55 (). getPassword ()) ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.