Spring Framework 4.3.4 طلب تعليمي تعليمي - ترتيب الفرز لمكوّن فول مشروح
نشرت: 2017-03-04إطار عمل Web MVC - Spring هو أفضل إطار عمل للتحكم في الويب ونموذج تكوين لتطبيق مؤسسة البرمجة القائمة على Java.
لدينا أكثر من 40 درسًا تعليميًا Spring MVC على Crunchify حتى الآن. في هذا البرنامج التعليمي سوف ننتقل إلى @Order Annotation
. ما فائدةOrder في الربيع؟ ترتيب الجوانب مع Spring AOP
و MVC
.
فيما يلي الخطوات القصيرة:
- سنقوم بإنشاء مشروع ويب ديناميكي
- قم بإنشاء ملف Spring Config
crunchify-bean.xml
- قم بتحويله إلى مشروع Maven
- إنشاء حبوب مع تعليق توضيحي للطلب
- إنشاء حالة الاختبار والتنفيذ
خطوات مفصلة: لنبدأ
الخطوة 1
- اذهب إلى الكسوف
- انقر فوق
File
- انقر فوق
New
- انقر فوق
Dynamic Web Project
الخطوة 2
- أدخل اسم المشروع:
CrunchifySpringMVC4OrderAnnotation
- توفير وقت التشغيل المستهدف. موقع Apache Tomcat بشكل رئيسي في Eclipse.
- اختر إصدار Dynamic Web Module:
3.1
الخطوه 3
- انقر بزر الماوس الأيمن على المشروع
- انقر فوق تكوين
- تحويل المشروع إلى مشروع مافن
الخطوة 4
اختر الإعداد الافتراضي وانقر فوق " Finish
".
الخطوة 5
هنا هيكل المشروع قبل أن نبدأ.
افتح ملف pom.xml وأضف تبعية Spring MVC 4.3.4.
1 2 3 4 5 |
< dependency > < groupId > org . springframework < / groupId > < artifactId > spring - context < / artifactId > < version > 4.3.4.RELEASE < / version > < / dependency > |
هذا هو ملف pom.xml
الكامل الخاص بي
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0.0 < / modelVersion > < groupId > CrunchifySpringMVC4OrderAnnotation < / groupId > < artifactId > CrunchifySpringMVC4OrderAnnotation < / artifactId > < version > 0.0.1 - SNAPSHOT < / version > < packaging > war < / packaging > < build > < sourceDirectory > src < / sourceDirectory > < plugins > < plugin > < artifactId > maven - compiler - plugin < / artifactId > < version > 3.3 < / version > < configuration > < source > 1.8 < / source > < target > 1.8 < / target > < / configuration > < / plugin > < plugin > < artifactId > maven - war - plugin < / artifactId > < version > 2.6 < / version > < configuration > < warSourceDirectory > WebContent < / warSourceDirectory > < failOnMissingWebXml > false < / failOnMissingWebXml > < / configuration > < / plugin > < / plugins > < / build > < dependencies > < dependency > < groupId > org . springframework < / groupId > < artifactId > spring - context < / artifactId > < version > 4.3.4.RELEASE < / version > < / dependency > < / dependencies > < / project > |
الخطوة 6
- انقر بزر الماوس الأيمن على Java Resources
- انقر فوق جديد
- انقر فوق مجلد المصدر وقم بتوفير الاسم:
resources
الخطوة 7
قم بإنشاء ملف crunchify-bean.xml
ضمن مجلد الموارد. هنا محتوى ملف كامل.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns : p = "http://www.springframework.org/schema/p" xmlns : context = "http://www.springframework.org/schema/context" xsi : schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd" > < context : annotation - config / > < ! -- Specify Bean ID "orders" -- > < bean id = "orders" class = "com.crunchify.spring.tutorials.CrunchifyPrintResult" / > < ! -- This is required and loads each class under below package -- > < context : component - scan base - package = "com.crunchify.spring.tutorials" / > < / beans > |
الخطوة 8
سنقوم الآن بإنشاء 5 ملفات مع تعليق @Order
.
- واجهة CrunchifyCompany.java
- CrunchifyGoogle1.java ==> مع
@Order(1)
- CrunchifyFacebook2.java ==> مع
@Order(2)
- CrunchifyYahoo3.java ==> مع
@Order(3)
- CrunchifyPrintResult.java
CrunchifyCompany.java
1 2 3 4 5 6 7 8 9 10 |
package com . crunchify . spring . tutorials ; /** * @author Crunchify.com * */ public interface CrunchifyCompany { // do nothing here } |
CrunchifyGoogle1.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
package com . crunchify . spring . tutorials ; import org . springframework . core . annotation . Order ; import org . springframework . stereotype . Component ; /** * @author Crunchify.com * */ @Component @Order ( 1 ) // @Order defines the sort order for an annotated component. The value() is optional and represents an order value as // defined in the Ordered interface. Lower values have higher priority. The default value is // Ordered.LOWEST_PRECEDENCE, indicating lowest priority (losing to any other specified order value). public class CrunchifyGoogle1 implements CrunchifyCompany { private String order = "Crunchify Google with Order-1" ; public String toString ( ) { return "Class Name: " + this . getClass ( ) . getSimpleName ( ) + " - Result: " + this . order ; } } |

CrunchifyFacebook2.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package com . crunchify . spring . tutorials ; import org . springframework . core . annotation . Order ; import org . springframework . stereotype . Component ; @Component @Order ( 2 ) public class CrunchifyFacebook2 implements CrunchifyCompany { private String order = "Crunchify Facebook with Order-2" ; public String toString ( ) { return "Class Name: " + this . getClass ( ) . getSimpleName ( ) + " - Result: " + this . order ; } } |
CrunchifyYahoo3.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package com . crunchify . spring . tutorials ; import org . springframework . core . annotation . Order ; import org . springframework . stereotype . Component ; @Component @Order ( 3 ) public class CrunchifyYahoo3 implements CrunchifyCompany { private String order = "Crunchify Yahoo with Order-3" ; public String toString ( ) { return "Class Name: " + this . getClass ( ) . getSimpleName ( ) + " - Result: " + this . order ; } } |
CrunchifyPrintResult.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package com . crunchify . spring . tutorials ; import java . util . List ; import org . springframework . beans . factory . annotation . Autowired ; import org . springframework . stereotype . Component ; /** * @author Crunchify.com * */ @Component public class CrunchifyPrintResult { @Autowired private List <CrunchifyCompany> order ; private String result = "" ; public String toString ( ) { order . stream ( ) . forEach ( ( temp ) - > { this . result = result + temp + "\n" ; // print result and add new line } ) ; return this . result ; } } |
الخطوة 9
الآن لنقم بإنشاء testcase CrunchifyOrderTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
package com . crunchify . spring . tests ; import org . springframework . context . ApplicationContext ; import org . springframework . context . support . ClassPathXmlApplicationContext ; import com . crunchify . spring . tutorials . CrunchifyPrintResult ; /** * @author Crunchify.com * */ public class CrunchifyOrderTest { @SuppressWarnings ( "resource" ) public static void main ( String [ ] args ) { // Load Spring ApplicationContext file crunchify-beans.xml ApplicationContext context = new ClassPathXmlApplicationContext ( "crunchify-beans.xml" ) ; // get the bean which we specified in file crunchify-beans.xml file CrunchifyPrintResult results = ( CrunchifyPrintResult ) context . getBean ( "orders" ) ; // After loading each class - just print result System . out . println ( results ) ; } } |
الخطوة 10
الآن فقط انقر بزر الماوس الأيمن على ملف CrunchifyOrderTest.java
Run As
باسم -> Java Application
. يجب أن ترى النتيجة مطبوعة بالترتيب الذي حددناه.
1 2 3 |
Class Name : CrunchifyGoogle1 - Result : Crunchify Google with Order - 1 Class Name : CrunchifyFacebook2 - Result : Crunchify Facebook with Order - 2 Class Name : CrunchifyYahoo3 - Result : Crunchify Yahoo with Order - 3 |