مقدمة
تحولت Javaconfig إلى مشروع فرعي للربيع. ويوفر معلومات تعريف الفول من خلال فصول Java. في إصدار Spring4 ، أصبحت Javaconfig رسميًا الوظيفة الأساسية لـ Spring4.
ستقدم هذه المقالة بالتفصيل المحتوى ذي الصلة حول التكوين استنادًا إلى فئات Java في الربيع. لن أقول الكثير أدناه. دعونا نلقي نظرة على المقدمة التفصيلية معًا.
1 تعريف الفول
يمكن أن توفر POJO العادية معلومات تعريف الفول لحاويات الزنبرك طالما تم وضع علامة على توضيح التكوين.
ConfigurationPublic Class SystemConfig { / ** * تحديد الفول و instantiate * * regurn * / bean public userdao userdao () {return new userdao () ؛ } bean public deptdao deptdao () {return new deptdao () ؛ } / ** * حدد مستخدمي المستخدمين وحقن userDao و deptdao * * * @REGAN * / bean public uservervice orseverservice () {userService service = new UsperService () ؛ service.setuserdao (userDao ()) ؛ service.setDeptdao (deptdao ()) ؛ خدمة الإرجاع ؛ }}يتم شرح طريقة هذه الفئة من خلال التعليق التوضيحي bean ، أي تحديد الفول. يتم تحديد نوع الفول حسب نوع قيمة إرجاع الطريقة. الاسم الافتراضي إلى اسم الطريقة واسم الطريقة. يمكنك أيضًا تحديد اسم الفول عن طريق إدخال المعلمة ، مثل bean (name = "xxx"). يوفر الطريقة التي يتميز بها body bean المنطق لإنشاء إنشاء الفول.
التكوين أعلاه يعادل XML التالي:
<bean id = "userdao"/> <bean id = "deptdao"/> <bean id = "userService" p: userdao-ref = "userdao" p: deptdao-ref = "deptdao"/>
بالمقارنة مع طريقة التكوين القائمة على فئات Java ، والتي تعتمد على طريقة التكوين XML أو التعليق التوضيحي -
نظرًا لأن فئة التعليقات التوضيحية configuration نفسها لها component ، يمكن حقن هذه الفئات في حبوب أخرى مثل الفاصوليا العادية.
ConfigurationPublic Class ApplicationConfig {Auutowired private SystemConfig SystemConfig ؛ Bean Public AuthordService AuthordService () {AuthordService Service = New AuthordService () ؛ service.setuserdao (SystemConfig.userdao ()) ؛ service.setDeptdao (SystemConfig.deptdao ()) ؛ خدمة الإرجاع ؛ }}يستخدم Spring تحسين AOP لجميع الأساليب التي تم وضع علامة عليها في فئة التكوين ، مع تقديم منطق إدارة دورة الحياة في الفول. على سبيل المثال ، SystemConfig.userdao () أعلاه ، فإنه يعيد المفرد المقابل للفول.
في Bean ، يمكننا أيضًا التحكم في نطاق الفول من خلال التعليق على شرح SSCOPE:
scope ("النموذج الأولي")@Beanpublic Deptdao Deptdao () {Return New Deptdao () ؛}وبهذه الطريقة ، ستعيد كل مكالمة إلى طريقة Deptdao () مثيلًا جديدًا:
AssertNotsame (AuthordService.getDeptdao (). hashcode () ، AuthordService.getDeptdao (). hashcode ()) ؛
ملاحظة: استخدم الفئات المستندة إلى Java للتكوين ، يجب تضمين مكتبات الربيع AOP و CGLIB في ClassPath.
2 ابدأ حاوية الربيع
2.1 استخدم فقط فئة التكوين
يمكنك استخدام مُنشئ فئة التعليقات التوضيحية ConfigPlicationContext لتمريرها في فئة Java التي تم تحديدها لبدء حاوية الزنبرك.
ApplicationContext Context = New EnoTationConfigPlicationContext (SystemConfig.class) ؛ UserService Usservice = (UserService) context.getBean ("uservervice") ؛ AssertNotnull (userService) ؛إذا كانت هناك فئات تكوين التكوين المتعددة ، فيمكنك تسجيلها في EnoTationConfigapplicationContext ثم تطبيق فئات التكوين هذه عن طريق تحديث الحاوية:
التعليق التوضيحي Context Context = التعليقات التوضيحية الجديدة annotationConfigapplicationContext () ؛ // تسجيل فئات التكوين المتعددة. config = context.getBean (ApplicationConfig.class) ؛ assertNotnull (config) ؛
يمكنك أيضًا تجميع فئات التكوين المتعددة في فئة تكوين واحدة من خلال import ، ثم تسجيل فئة التكوين المجمعة لبدء الحاوية:
@configuration @import (SystemConfig.class) ApplicationConfig2 {Autowired private SystemConfig SystemConfig ؛ Bean Public AuthordService AuthordService () {AuthordService Service = New AuthordService () ؛ service.setuserdao (SystemConfig.userdao ()) ؛ service.setDeptdao (SystemConfig.deptdao ()) ؛ خدمة الإرجاع ؛ }}اختبارات الوحدة:
التعليق التوضيحي Context Context = التعليق التوضيحي الجديد ContationConfigPlicationContext (ApplicationConfig2.Class) ؛ ApplicationConfig2 config = context.getBean (ApplicationConfig2 config.authorityService () ؛ assertnotnull (AuthordService.getDeptdao ()) ؛ assertNotsame (AuthordService.getDeptdao (). hashcode () ، AuthordService .getDeptdao (). hashcode ()) ؛
2.2 باستخدام ملفات XML للإشارة إلى تكوين فئة التكوين
تعتبر فئة التكوين التي تحمل علامة Configuration أيضًا حبة ، لذلك يمكن أيضًا مسحها ضوئيًا بواسطة SPRING <COUNTEXT: COMPONENT-SCAN>. لذلك ، إذا كنت ترغب في تجميع فئة التكوين في ملف تكوين XML وابدأ الربيع من خلال ملف تكوين XML ، فأنت بحاجة فقط إلى مسح فئة التكوين المقابلة من خلال <Context: Component-Scan> في XML.
<السياق: مكون المسح الضوئي package = "net.deniro.spring4.conf" Resource-Pittern = "ApplicationConfig2.Class" />
2.3 تكوين ملفات XML المرجعية في فئة التكوين
في فئة التكوين configuration ، يمكنك تقديم ملفات تكوين XML مباشرة من خلال ImporTresource ، بحيث يمكنك الرجوع مباشرة إلى الفاصوليا المحددة في ملف تكوين XML من خلال Autowired.
ملف التكوين:
<bean id = "groupdao"/> <bean id = "roledao"/>
فئة التكوين:
ImporTresource ("classpath: beans5-11.xml") @configurationpublic class serviceConfig {beanautowired public relationservice relationservice (groupdao groupdao ، roledao roledao) service.setGroupDao (GroupDao) ؛ service.setroledao (Roledao) ؛ خدمة الإرجاع ؛ }}اختبارات الوحدة:
enoTationConfigPlicationContext context = annotationConfigapplicationContext (serviceConfig.class) ؛ serviceConfig config = context.getBean (serviceConfig.class) ؛ assertnotnull (config) ؛ Context .getBean ("Roledao")) ؛ assertnotnull (service.getroledao ()) ؛طالما أن معلومات التعريف هذه بأشكال مختلفة من الفاصوليا يمكن تحميلها في حاويات زنبركية ، يمكن أن يكمل Spring بذكاء التجميع بين الفاصوليا.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.