Spring Framework 4.3.4 @Order Annotation Tutorial – เรียงลำดับสำหรับส่วนประกอบ Annotated Bean
เผยแพร่แล้ว: 2017-03-04เฟรมเวิร์ก MVC ของเว็บ – Spring เป็นเฟรมเวิร์กตัวควบคุมเว็บที่ดีที่สุดและโมเดลการกำหนดค่าสำหรับแอปพลิเคชันองค์กรสำหรับการเขียนโปรแกรมระดับ Java
เรามีบทแนะนำ Spring MVC มากกว่า 40 บทเกี่ยวกับ Crunchify จนถึงตอนนี้ ในบทช่วยสอนนี้ เราจะพูดถึง @Order Annotation
การใช้ @Order ในฤดูใบไม้ผลิคืออะไร? ด้านการสั่งซื้อด้วย Spring AOP
& MVC
.
นี่คือขั้นตอนสั้น ๆ :
- เรากำลังจะสร้าง Dynamic Web Project
- สร้างไฟล์ Spring Config
crunchify-bean.xml
- แปลงเป็น Maven Project
- สร้างถั่วพร้อมคำอธิบายประกอบคำสั่งซื้อ
- สร้างกรณีทดสอบและดำเนินการ
ขั้นตอนโดยละเอียด: มาเริ่มกันเลย
ขั้นตอนที่ 1
- ไปที่ Eclipse
- คลิกที่
File
- คลิกที่
New
- คลิกที่
Dynamic Web Project
ขั้นตอนที่ 2
- ระบุชื่อโครงการ:
CrunchifySpringMVC4OrderAnnotation
- ระบุรันไทม์เป้าหมาย ส่วนใหญ่เป็นตำแหน่ง Apache Tomcat ใน Eclipse
- เลือกเวอร์ชันไดนามิกเว็บโมดูล:
3.1
ขั้นตอนที่ 3
- คลิกขวาที่โครงการ
- คลิกที่กำหนดค่า
- แปลงโปรเจ็กต์เป็นโปรเจ็กต์ Maven
ขั้นตอนที่ 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 Interface
- 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
ตอนนี้ มาสร้าง 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
คุณควรเห็นผลลัพธ์ที่พิมพ์ตามลำดับที่เราระบุ Order
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 |