คำอธิบายสั้น ๆ
บทช่วยสอนนี้ส่วนใหญ่แนะนำวิธีการขยายการกำหนดค่า XML ของ Spring เพื่อให้สปริงสามารถรับรู้สคีมาและคำอธิบายประกอบที่กำหนดเองของเราได้
ฟังก์ชั่นที่เราต้องการนำไปใช้ที่นี่มีดังนี้: ก่อนอื่นให้ฤดูใบไม้ผลิรับรู้การกำหนดค่าต่อไปนี้
<std: คำอธิบายประกอบ-endpoint />
ฟังก์ชั่นที่จะนำไปใช้ในการกำหนดค่านี้คือหลังจากการกำหนดค่าสปริงสามารถสแกนคำอธิบายประกอบ @endpoint ที่กำหนดเองของเรา และเผยแพร่บริการ Webservice โดยอัตโนมัติตามคำอธิบายประกอบ ฟังก์ชั่นไม่ได้ใช้งานอย่างเต็มที่และเป็นบทช่วยสอนเพื่อขยายฤดูใบไม้ผลิมันมีบทบาทในการดึงดูดหยก
สร้างโครงการ
ก่อนอื่นคุณต้องสร้างโครงการ Java และที่นี่คุณใช้ Maven เพื่อสร้างโครงการ Quickstart (โครงการ Java ปกติ)
เนื้อหาไฟล์ POM มีดังนี้
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/MANCMMMMMMMMMMMMMMMMMMMMMMMMMMBM http://maven.apache.org/xsd/maven-4.0.0.xsd "> <SoderVervesion> 4.0.0 </modelversion> Spring-CXF-Annotation-Support </artifactid> <version> 1.0.0-snapshot </version> <name> $ {project.artifactid} </name> ช่วยให้โครงการของคุณสามารถเผยแพร่เว็บเซิร์ฟเวอร์ผ่านคำอธิบายประกอบได้ตามการห่อหุ้ม Spring+CXF โดยไม่ต้องมีการบุกรุก API </คำอธิบาย> <url> https://github.com/codestd/spring-cxf-annotation-support </url> <licenses> <lisense> <name> ใบอนุญาต Apache เวอร์ชันเวอร์ชัน 2.0 </name> <url> http://www.apache.org/licenses/license-2.0.txt </url> </sollecents> </lisenses> <นักพัฒนา> <sideveer> <name> Jaune (Wangchengwei) /role></roles><timezone>gmt+8</timezone></developer></developers><scm><connection>https://github.com/codestd/spring-cxf-annotation-support.git</connection> estd/spring-cxf-annotation-support.git </edeveloperconnection> </scm> <properties> <junit.version> 4.12 </junit.version> <pring.version> 4.2.4.release </spring.version> <cxf.version> 3.1.3 RTIES> <การพึ่งพา> <การพึ่งพา> <roupId> Junit </groupId> <ratifactid> Junit </artifactId> <cersion> $ {junit.version} </เวอร์ชัน> <pope> ทดสอบ </cope> </การพึ่งพา> <การพึ่งพา upId> <ratifactId> Spring-Context </artifactId> <persion> $ {spring.version} </เวอร์ชัน> </การพึ่งพา> <การพึ่งพา> <groupId> org.apache.cxf </groupId> <atifactId> cxf-rt-frontend-jaxws F.Version} </Serve> </derctency> <การพึ่งพา> <roupId> org.apache.cxf </groupId> <ratifactId> cxf-rt-transports-http-jetty </artifactid> <version> $ {cxf.version} org.springframework </groupid> <ratifactid> การทดสอบฤดูใบไม้ผลิ </artifactid> <cersion> $ {spring.version} </เวอร์ชัน> </การพึ่งพา> <การพึ่งพา ersion> <pope> ทดสอบ </cope> </derctency> <การพึ่งพา> <roupId> org.slf4j </groupId> <ratifactId> SLF4J-LOG4J12 </artifactId> <Sersion> 1.7.7 </เวอร์ชัน>สคีมานิยาม
<? xml version = "1.0" encoding = "utf-8" standalone = "ไม่"?> <xsd: schema xmlns = "http://www.codestd.com/schema/std/ws" xmlns: xsd = "http://www.w3.org/2001/xmlschema" xmlns: beans = "http://www.springframework.org/schema/beans e = "http://www.codestd.com/schema/std/ws" elementFormDefault = "ผ่านการรับรอง" attributeFormDefault = "ไม่มีเงื่อนไข"> <xsd: นำเข้า namespace = "http://www.springframework.org/schema/beans"/> <xsd: คำอธิบายประกอบ> <xsd: เอกสาร> <! ]]> </xsd: เอกสาร> </xsd: คำอธิบายประกอบ> <xsd: element name = "Annotation-endpoint"> <xsd: complexType> <xsd: complexContent> <xsd: ส่วนขยาย = "Beans: idefiedType"> <xsd: แอตทริบิวต์ ใช้ = "ตัวเลือก"> <xsd: คำอธิบายประกอบ> <xsd: เอกสาร> <! [cdata [ชื่อถั่ว Insted of id]]> </xsd: เอกสาร> </xsd: คำอธิบายประกอบ> </xsd: แอตทริบิวต์> <xsd: attribute name = "package" type = "xsd: string" use = "ตัวเลือก"> <xsd: Annotation> <xsd: เอกสาร> <! ]]> </xsd: เอกสาร> </xsd: คำอธิบายประกอบ> </xsd: แอตทริบิวต์> </xsd: ส่วนขยาย> </xsd: complexContent> </xsd: complexType> </xsd: องค์ประกอบ> </xsd: schema> schema>
ความรู้เกี่ยวกับ SECHMA จะไม่ได้รับการอธิบายที่นี่ เพื่อนที่ไม่ทราบวิธีการใช้มันต้องเรียนรู้เกี่ยวกับเรื่องนี้ก่อน ตำแหน่ง SECHMA อยู่ใน SRC/Main/Resources/Meta-Inf/Schema/STDWS-1.0.xsd
คำอธิบายประกอบคำจำกัดความ
แพ็คเกจ com.codestd.spring.cxf.annotation; นำเข้า java.lang.annotation.documented; นำเข้า java.lang.annotation.elementtype; นำเข้า java.lang.annotation.retention; และบรรลุวัตถุประสงค์ของการเปิดรับบริการโดยการเพิ่ม {@code @endpoint} คำอธิบายประกอบเข้ากับคลาส * <p> ขยายฟังก์ชั่นการสแกนถั่วของฤดูใบไม้ผลิ หลังจากเพิ่มคำอธิบายประกอบนี้ลงในถั่วมันจะลงทะเบียนโดยอัตโนมัติในคอนเทนเนอร์ฤดูใบไม้ผลิ *@author jaune (wangchengwei)*@since 1.0.0*/ @target (elementtype.type) @retention (RetentionPolicy.runtime) @documentedPublic @interface Endpoint {/*** ID ของจุดสิ้นสุดนี้ @return*/string address ();}การกำหนดค่าในฤดูใบไม้ผลิ
เปิด "หน้าต่าง", "การตั้งค่า", "XML", "แคตตาล็อก XML" คลิก "เพิ่ม" จากนั้นเลือก XSD ที่เราสร้างไว้ด้านบนในตำแหน่ง "ประเภทคีย์" เลือกชื่อเนมสเปซและป้อนคีย์ลงใน http://www.codestd.com/schema/std/ws/stdws-1.0.xsd นั่นคือชื่อไฟล์ TargetNamespace+ ที่กำหนดไว้ใน SECHMA
เพิ่มเนมสเปซในฤดูใบไม้ผลิและใช้แท็กดังนี้ ที่นี่เราต้องใช้ฟังก์ชั่นการสแกนคำอธิบายประกอบของฤดูใบไม้ผลิ
<? xml version = "1.0" encoding = "utf-8"?> <ถั่ว xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-in Stance "xmlns: std =" http://www.codestd.com/schema/std/ws "Xsi: schemalocation =" http: //www.springframew ork.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.cod estd.com/schema/std/wshttp://www.codestd.com/schema/std/ws/stdws-1.0.xsd"><std:annotation-endpoint package = "com.codestd.spring.cxf.ws"/> </epeans>
แพ็คเกจที่จะสแกนถูกกำหนดไว้ในการกำหนดค่าและไม่ได้ขึ้นอยู่กับการกำหนดค่าด้วยบริบท
ด้านบนเป็นสปริงการกำหนดค่าสปริงที่ขยายได้ (1) ที่แชร์โดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน