การพัฒนา Java/Spring ได้รับการพิจารณาว่าเป็นตัวแทนที่น่าเบื่อหน่ายและไม่สามารถสร้างต้นแบบโครงการและโครงกระดูกได้อย่างรวดเร็ว ดังนั้นฤดูใบไม้ผลิจึงเปิดตัวโครงการฤดูใบไม้ผลิ ROO เพื่อช่วยให้เราสร้างต้นแบบโครงการได้อย่างรวดเร็ว บทความนี้ขึ้นอยู่กับเอกสารอย่างเป็นทางการของฤดูใบไม้ผลิ Roo หากคุณคุ้นเคยกับภาษาอังกฤษคุณสามารถอ่านเอกสารต้นฉบับโดยตรงซึ่งมีเนื้อหาที่สมบูรณ์ยิ่งขึ้น
ติดตั้ง
ติดตั้งเครื่องมือบรรทัดคำสั่ง
Spring Roo เป็นชุดเครื่องมือบรรทัดคำสั่ง หากคุณใช้ Eclipse/STS คุณสามารถใช้ปลั๊กอินที่สอดคล้องกับ Eclipse
ก่อนอื่นให้ดาวน์โหลดเครื่องมือบรรทัดคำสั่ง ไปที่หน้าดาวน์โหลดและเลือกเวอร์ชันที่เกี่ยวข้องเพื่อดาวน์โหลด ที่นี่ฉันเลือก 2.0.0.rc1 ล่าสุดหลังจากทั้งหมดฉันได้อัปเดต OCD หลังจากดาวน์โหลดแล้วคลายซิปแล้วคุณจะได้รับโฟลเดอร์ที่ไฟล์ปฏิบัติการของ Spring Roo อยู่ในไดเรกทอรี Bin คุณจะเห็นว่ามันมีสองรูปแบบ: BAT และ SH ซึ่งสามารถทำงานบนระบบที่แตกต่างกัน เพื่ออำนวยความสะดวกในการทำงานในอนาคตใน Windows เทอร์มินัลฉันขอแนะนำให้เพิ่มโฟลเดอร์นี้ลงในตัวแปรสภาพแวดล้อมในเวลาเดียวกัน
หลังจากการติดตั้งให้เปิดพรอมต์คำสั่งหรือหน้าต่างเทอร์มินัลอื่น ๆ ป้อนคำสั่ง ROO และคุณสามารถเริ่ม ROO ได้ เป็นเรื่องที่ควรค่าแก่การกล่าวถึงว่า ROO จะสร้างโครงการในตำแหน่งโฟลเดอร์ที่สอดคล้องกับพรอมต์คำสั่งดังนั้นหากคุณต้องการสร้างโครงการในตำแหน่งที่เฉพาะเจาะจงก่อนอื่นให้สลับไปที่โฟลเดอร์นั้นในพรอมต์คำสั่งจากนั้นเริ่ม ROO
ติดตั้งปลั๊กอิน Eclipse
เปิด Eclipse/STS ของคุณและทำตามขั้นตอนเหล่านี้:
คลิกช่วยเหลือ▸ติดตั้งซอฟต์แวร์ใหม่
คลิกที่ไซต์ซอฟต์แวร์ที่มีอยู่
คลิกปุ่มนำเข้าเพื่อค้นหา "$ roo_home/conf/sts-sites-bookmarks.xml" และยืนยันว่า $ roo_home เป็นไดเรกทอรีที่คุณติดตั้ง Roo เลือกเวอร์ชันที่เกี่ยวข้องตามความต้องการของคุณและป้อน ROO ในแถบตัวกรอง
เลือกฟังก์ชั่นสปริง ide roo รองรับ
จากนั้นยืนยันและอนุญาตให้ข้อกำหนดและเงื่อนไขในที่สุดรีสตาร์ท IDE
ด้านล่างเป็นรูปภาพของเอกสารอย่างเป็นทางการ หากคุณมีคำถามใด ๆ เพียงแค่ติดตามภาพนี้
ยังไม่เสร็จ ปลั๊กอินได้รับการติดตั้งแล้ว แต่ยังไม่ได้รับการกำหนดค่า ในความเป็นจริงการกำหนดค่านั้นง่ายมาก เพียงแค่บอกปลั๊กอินที่ติดตั้งเครื่องมือ ROO ของคุณ คลิกหน้าต่าง▸การตั้งค่า▸สปริง▸การสนับสนุน ROO เปิดการตั้งค่าแล้วติดตามภาพหน้าจอเอกสารอย่างเป็นทางการเพื่อตั้งค่าเส้นทางเครื่องมือของคุณ
วิธีนี้การตั้งค่าปลั๊กอินถูกตั้งค่า ในความเป็นจริงปลั๊กอินนี้ไม่มีผล มันเพิ่งเปิดหน้าต่างใน eclipse เพื่อเรียกใช้คำสั่ง ROO ซึ่งจริง ๆ แล้วเป็นเช่นเดียวกับการรันโดยตรงในพรอมต์คำสั่ง
ใช้ Roo
เรียกใช้สคริปต์รู
มีสคริปต์โครงการตัวอย่างสามรายการภายใต้โฟลเดอร์ $ ROO_HOME/SAMPLES และเรียกใช้กับ ROO สามารถสร้างโครงการที่สอดคล้องกันได้อย่างรวดเร็ว หากคุณไม่มีความอดทนคุณสามารถเริ่มต้นได้โดยตรงจากที่นี่
ตัวอย่างเช่นหากฉันต้องการเรียกใช้โครงการอินสแตนซ์ทางคลินิกฉันสามารถป้อนคำสั่งต่อไปนี้:
roo> สคริปต์ -ไฟล์คลินิกรูรู
รอสักครู่และโปรแกรมจะถูกสร้างขึ้น
ในที่สุดโปรแกรมการบูตฤดูใบไม้ผลิที่ใช้ Maven ถูกสร้างขึ้น นี่คือสิ่งที่ดูเหมือนภายใต้ความคิด คุณจะเห็นว่ามีไฟล์บันทึกชื่อ log.roo ในโครงการซึ่งบันทึกเนื้อหาของการดำเนินการของสคริปต์ ROO นี้ ฉันไม่ทราบว่าทำไมโปรแกรมจะรายงานข้อผิดพลาดบางอย่างภายใต้แนวคิด แต่จะไม่ส่งผลกระทบต่อการรวบรวมและการดำเนินการ
โปรแกรมตัวอย่าง petclinic นี้ใช้ความปลอดภัยของสปริงเพื่อปกป้องหน้า ฉันตรวจสอบแล้ว ภายใต้ Spring Boot ชื่อผู้ใช้เริ่มต้นคือผู้ใช้และรหัสผ่านจะถูกส่งไปยังคอนโซลแบบสุ่มเมื่อโปรแกรมเริ่มต้น ภาพหน้าจอสุดท้ายมีดังนี้คุณสามารถเรียกใช้และทดสอบโปรแกรมนี้ด้วยตัวเอง
คำอธิบายสคริปต์
มาอธิบายสคริปต์รูของ Petclinic มาดูกันว่ารูทำงานอย่างไร นี่คือคำอธิบายง่ายๆ หากคุณต้องการข้อมูลโดยละเอียดคุณสามารถอ้างถึงภาคผนวกของเอกสารอย่างเป็นทางการซึ่งแนะนำคำสั่งต่าง ๆ พารามิเตอร์และการใช้งานของ ROO อย่างเต็มที่
สิ่งแรกคือการสร้างโครงการและระบุชื่อแพ็คเกจระดับบนสุดซึ่งจะสร้างโครงการสปริงบูตตาม Maven
การตั้งค่าโครงการ -toflevelpackage org.springframework.roo.petclinic
จากนั้นระบุประเภทการจัดเก็บ JPA โดยใช้ไฮเบอร์เนตที่นี่และฐานข้อมูลคือ HSQLDB ที่เก็บไว้ในหน่วยความจำ แน่นอนว่าฐานข้อมูลอื่น ๆ สามารถใช้งานได้ แต่พารามิเตอร์อื่น ๆ เช่นชื่อผู้ใช้จะต้องเพิ่มตามลำดับ
การตั้งค่า jpa -ผู้พิพากษา Hibernate -DATABASE HYPERSONIC_IN_MEMORY
จากนั้นมีหลายคลาสการแจงนับซึ่งจะใช้ในคลาสเอนทิตี ที่นี่ ~ หมายถึงชื่อแพ็คเกจระดับบนสุดก่อนหน้านี้
ประเภท enum - -class ~ .domain.reference.pettypeenum ค่าคงที่ -Name Dogenum ค่าคงที่ -ค่าคงที่ catenum -ชื่อ Birdenum ประเภท - - -class ~ .domain.reference.Specialtyenum ค่าคงที่ -ค่าคงที่ cardiologyenum
จากนั้นมีหลายคลาสเอนทิตีในโครงการ
เอนทิตี JPA --lass ~ .domain.pet -Sequencename PET_SEQ --ENTITYFORMATEXPRESSION "#{ชื่อ} (#{ประเภท})" เอนทิตี JPA - - -class ~ .domain.visit -sequencename Visit_seq ~ .domain.vet -extends ~ .domain.abstractPerson --EntityFormateXpression "#{LastName} (#{Specialty})" Entity JPA - -class ~ .domain.Onderชื่อต่อไปนี้ตั้งค่าคุณสมบัติและความสัมพันธ์ในการติดต่อของแต่ละคลาสเอนทิตีในรายละเอียด เนื่องจากมีมากมายฉันจึงเลือกเพียงไม่กี่คนทั่วไป ก่อนที่จะตั้งค่าคลาสเอนทิตีคุณต้องใช้คำสั่งโฟกัสเพื่อระบุคลาสเอนทิตีที่จะตั้งค่า
โฟกัส -Class ~ .domain.Petfield Boolean -ชื่อ SendReminders -NotNull -PrimitiveField String -ชื่อ FieldName -NotNull -SIZEMIN 1FIELD NUMBER -FieldName Weight -Type java.lang.float. -ttype ~ .domain.visitfocus - - -class ~ .domain.AbstractPersonfield String -FieldName FirstName -Sizemin 3 -SizeMax 30field String -FieldName LastName -NotNull -SIZEMIN -SIZEMAX -SIZEMAX -SIZEMAX -SIZEMAX 30 ฟิลด์สตริง -โทรศัพท์ชื่อโทรศัพท์ -สตริงน็อตนูลฟิลด์ -ฟิลด์ฟิลด์โฮมเพจ -Sizemax 30 ฟิลด์สตริง -ฟิลด์อีเมลชื่อ -SIZEMAX 30 -SIZEMIN 6FIELD DATE -FIELDNAME วันเกิด -JAVA.UTIL.DATE
จากนั้นตั้งค่าความสัมพันธ์การฉายระหว่างคลาสเอนทิตีและตั้งค่าที่เก็บ JPA
การฉายภาพเอนทิตี -Class ~ .domain.VetInfo -ENTITY ~ .domain.vet -Fields ID, FirstName, LastName, Specialty -EntityFormatexpression " #{FIRSTNAME} #{LastName} ~ .domain.VetinforePository JPA -ทั้งหมด -แพคเกจ ~ .RepositoryService -ทั้งหมด -APIPACKAGE ~ .Service.API -ImplPackage ~ .Service.Implจากนั้นตั้งค่า DTO (วัตถุการถ่ายโอนข้อมูล) ซึ่งสอดคล้องกับแบบฟอร์มและข้อมูลอื่น ๆ ในหน้าแล้วแปลงเป็นคลาสเอนทิตีที่สอดคล้องกันในพื้นหลัง ที่นี่คุณสามารถระบุ Finder นั่นคือเงื่อนไขการสืบค้น สำหรับกฎสำหรับเงื่อนไขการสืบค้นโปรดดูเนื้อหาที่เกี่ยวข้องของ Spring Data JPA
dto - -class ~ .domain.petnameandweightformbeanfield String -FieldName Namefield Number -FieldName Weight -ttype java.lang.floatfinder Add -Eentity ~ .domain.pet -Name FindBynameAndweight -FormBean
จากนั้นตั้งค่าสปริงเว็บ MVC โดยที่ thymeleaf ถูกระบุเป็นเลเยอร์มุมมองและสร้างมุมมอง JSON และ thymeleaf สำหรับตัวควบคุมทั้งหมด
Web MVC SetupWeb MVC View Setup -Type ThymeleafWeb MVC Controller -ทั้งหมด -ResponSetype JSONWEB MVC Controller -ทั้งหมด -ResponSetype thymeleaf
จากนั้นมีหน้าเคียวรีและรายละเอียดที่สร้างขึ้น ที่นี่หน้าการสืบค้นที่สอดคล้องกันถูกสร้างขึ้นสำหรับเงื่อนไขการสืบค้นทั้งหมดที่ตั้งไว้ก่อนหน้านี้จากนั้นหน้ารายละเอียดสำหรับคลาสเอนทิตีที่ระบุจะถูกสร้างขึ้น ในที่สุดก็มีการระบุภาษาหน้าและดูเหมือนว่าจะสนับสนุนภาษาอังกฤษและสเปนเท่านั้น
// การเผยแพร่ Findersweb MVC Finder -ทั้งหมด -responsetype thymeleaf // การเพิ่มรายละเอียด MVC รายละเอียด -ความเป็นส่วนตัว ~ .domain.Onder -Field Pets -รายการดู, แสดง, findbycitylike
จากนั้นฉันก็ใช้ความปลอดภัยของฤดูใบไม้ผลิเพื่อปกป้องโปรแกรม บรรทัดแรกคือการใช้การกำหนดค่าเริ่มต้นของ Spring Security ชื่อผู้ใช้คือผู้ใช้และรหัสผ่านเป็นสตริงแบบสุ่มที่พิมพ์บนคอนโซล บรรทัดที่สองกำหนดค่าสิทธิ์ของผู้ใช้และเฉพาะผู้ใช้ในบทบาทผู้ดูแลระบบเท่านั้นที่สามารถดำเนินการลบได้
การตั้งค่าความปลอดภัย -ผู้ให้บริการค่าเริ่มต้นการรับรองความปลอดภัย -Class ~ .service.impl.ownerserviceImpl -Method Delete.* -Roles Admin
จากนั้นเปิดใช้งานฟังก์ชั่นการตรวจสอบและโปรแกรมจะบันทึกเวลาการแก้ไขและตัวแก้ไขของคลาสเอนทิตีที่สอดคล้องกันโดยอัตโนมัติ
JPA Audit SetupJPA Audit Add -Entity ~ .domain.PetJPA ADDIT ADDINT -ENTITY ~ .domain.OwnerJPA AD ADDIT ADDITITE
จากนั้นคุณลักษณะจุดสิ้นสุดของบริการเว็บจะถูกเปิดใช้งานซึ่งสามารถดูได้ภายใต้ /บริการ
WS Endpoint -Service ~ .Service.Api.Ownerservice -SEI ~ .WS.API.OWNERWEBSERVICE -Class ~ .WS.ENDPOINT.OwnerWebServiceendpoint -config ~ .config.wsendpointsconfigurationWS ~ .ws.endpoint.petwebserviceendpoint -config ~ .config.wsendpointsconfiguration
ในที่สุดการทดสอบหน่วยและการทดสอบการรวมจะถูกสร้างขึ้นโดยอัตโนมัติสำหรับคลาสเอนทิตีและบริการเหล่านี้
// การสร้างการทดสอบรวมสำหรับหน่วย entitytest ทั้งหมด -คลาส ~ .domain.OnerTest Unit -Class ~ .domain.Pettest Unit -Class ~ .domain.Vettest Unit -class ~ .domain.visit // การรวมการรวมตัวกัน ~ .Repository.VisItRepositoryTest การรวม -class ~ .Repository.petrepository // การรวมตัวควบคุมการรวมการทดสอบการรวม -class ~ .web.OwnersCollectionJSONCONTROLTESTESTESTESTESTESTESTCOLLECTIOLCOLLECTIOLCOLLECTALSCOLLECTALSCOLLESTCLOLLESTCLOLTEM ~ .WEB.VISITITEMTHYMELEAFCONTROLLER
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการติดตั้งและการใช้สปริงรูและฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!