การแนะนำ
Spring Boot API Project Seed เป็นโปรเจ็กต์เริ่มต้นที่ใช้ Spring Boot & MyBatis ซึ่งใช้เพื่อสร้างโปรเจ็กต์ API ขนาดเล็กและขนาดกลางและ RESTful API อย่างรวดเร็ว รวดเร็วทำให้เรากำจัดงานที่ต้องทำซ้ำ ๆ เน้นการเขียนโค้ดธุรกิจและลดค่าล่วงเวลา ต่อไปนี้เป็นการสาธิตการใช้งานอย่างง่ายเพื่อดูวิธีใช้งาน API แบบง่ายในเวลาเพียงไม่กี่วินาทีโดยอิงตามโปรเจ็กต์นี้ และเรียกใช้เพื่อให้บริการ
คุณสมบัติและข้อเสนอ
- โครงสร้างโปรเจ็กต์แนวปฏิบัติที่ดีที่สุด ไฟล์การกำหนดค่า POM ที่ได้รับการปรับปรุง (ดูไดอะแกรมโครงสร้างโปรเจ็กต์)
- เครื่องมือสร้างและจัดทำบรรจุภัณฑ์ผลลัพธ์การตอบสนองแบบรวม
- การจัดการข้อยกเว้นแบบรวม
- การตรวจสอบลายเซ็นอินเทอร์เฟซอย่างง่าย
- การสรุปสรุปวิธีการพื้นฐานที่ใช้กันทั่วไป
- ใช้ Druid Spring Boot Starter เพื่อรวมพูลการเชื่อมต่อฐานข้อมูล Druid และการตรวจสอบ
- ใช้ FastJsonHttpMessageConverter เพื่อปรับปรุงความเร็วการทำให้เป็นอนุกรม JSON
- ผสานรวม MyBatis, ปลั๊กอิน Universal Mapper และปลั๊กอินเพจจิ้ง PageHelper เพื่อให้ได้ SQL เป็นศูนย์สำหรับธุรกิจตารางเดียว
- ตัวสร้างโค้ดมีไว้เพื่อสร้างโค้ดพื้นฐานที่เกี่ยวข้อง เช่น Model, Mapper, MapperXML, Service, ServiceImpl และ Controller ตามชื่อตาราง เทมเพลต Controller จะมี POST และ RESTful สองชุดตามค่าเริ่มต้น คุณสามารถเลือกได้ตามความต้องการของคุณ ในเมธอด
CodeGenerator.genController(tableName)
จะใช้เทมเพลต POST เป็นค่าเริ่มต้น เทมเพลตโค้ดสามารถขยายได้ตามความต้องการของโปรเจ็กต์จริง เนื่องจากธุรกิจของแต่ละบริษัทมีความแตกต่างกัน เราจึงจัดเตรียมเทมเพลตพื้นฐานและทั่วไปเพียงบางส่วนเท่านั้น จุดประสงค์หลักคือเพื่อให้แนวคิด ในการลดการเขียนโค้ดซ้ำ ๆ ในการใช้งานจริง เทมเพลตจำนวนมากถูกเขียนขึ้นโดยอิงจากนามธรรมของธุรกิจของบริษัท นอกจากนี้ การใช้เทมเพลตยังช่วยให้สไตล์การเขียนโค้ดของทีมเป็นหนึ่งเดียวอีกด้วย - นอกจากนี้ยังมีไข่อีสเตอร์รอให้คุณไปสำรวจอีกด้วย
เริ่มต้นอย่างรวดเร็ว
- โครงการโคลน
- กำหนดค่าตัวสร้างโค้ด
CodeGenerator
ในแพ็คเกจ test
ซึ่งส่วนใหญ่เป็น JDBC เนื่องจากจำเป็นต้องสร้างโค้ดตามชื่อตาราง - หากคุณเพียงต้องการลองด้วยตัวเองตามการสาธิตข้างต้น คุณสามารถใช้
demo-user.sql
ในไดเร็กทอรี test resources
ไม่เช่นนั้นก็ไม่ต้องสนใจขั้นตอนนี้ - ป้อนชื่อตารางและเรียกใช้เมธอด
CodeGenerator.main()
เพื่อสร้างโค้ดพื้นฐาน (คุณอาจต้องรีเฟรชไดเร็กทอรีโปรเจ็กต์ก่อนจึงจะออกมา) - ขยายโค้ดพื้นฐานตามธุรกิจ
- กำหนดค่าไฟล์การกำหนดค่าสภาพแวดล้อมการพัฒนา
application-dev.properties
เริ่มโปรเจ็กต์ ขอให้สนุก!
ข้อเสนอแนะการพัฒนา
- สำหรับชื่อตาราง ขอแนะนำให้ใช้ตัวอักษรพิมพ์เล็ก ใช้ขีดล่างเพื่อรวมคำหลายคำเข้าด้วยกัน
- ขอแนะนำให้ตัวแปรสมาชิกในโมเดลสอดคล้องกับจำนวนฟิลด์ของตาราง (เช่น การเชื่อมต่อแบบสอบถามตาราง) ขอแนะนำให้สร้าง DTO มิฉะนั้น คุณจะต้องเพิ่ม
@Transient
คำอธิบาย @Transient
สำหรับตัวแปรสมาชิกเพิ่มเติม โปรดดูเอกสารประกอบปลั๊กอิน Mapper ทั่วไป - ขอแนะนำให้ส่งความล้มเหลวของบริการโดยตรงโดยใช้
ServiceException("message")
และตัวประมวลผลข้อยกเว้นแบบรวมจะสรุปผลการตอบสนองของความล้มเหลวทางธุรกิจ เช่น throw new ServiceException("该手机号已被注册")
ซึ่งจะ ห่อหุ้มโดยตรงเป็น {"code":400,"message":"该手机号已被注册"}
คืนได้ ไม่ต้องจัดการเอง แค่โยนให้มากเท่าที่ต้องการ - หากคุณต้องการคลาสเครื่องมือ ขอแนะนำให้ค้นหาจาก
apache-commons-*
และ guava
ก่อน ไม่จำเป็นต้องสร้างวงล้อใหม่หรือแนะนำคลาสไลบรารี และพยายามปรับปรุงโปรเจ็กต์ให้มากที่สุด - แนะนำให้ใช้ข้อกำหนดการพัฒนาตามคู่มือการพัฒนา Java ของอาลีบาบา (ดาวน์โหลดเวอร์ชันล่าสุด)
- ขอแนะนำให้ใช้ ShowDoc, SpringFox-Swagger2, RAP และโครงการโอเพ่นซอร์สอื่น ๆ ภายในบริษัทเพื่อเขียนและจัดการเอกสาร API
การเลือกเทคโนโลยีและเอกสารประกอบ
- Spring Boot (ดูคู่มือการเรียนรู้และการใช้งาน Spring Boot)
- MyBatis (ดูเอกสารภาษาจีนอย่างเป็นทางการ)
- ปลั๊กอิน MyBatisb universal Mapper (ดูเอกสารภาษาจีนอย่างเป็นทางการ)
- ปลั๊กอินเพจ MyBatis PageHelper (ดูเอกสารภาษาจีนอย่างเป็นทางการ)
- Druid Spring Boot Starter (ดูเอกสารภาษาจีนอย่างเป็นทางการ)
- Fastjson (ดูเอกสารภาษาจีนอย่างเป็นทางการ)
- อื่นๆ เล็กน้อย
ใบอนุญาต
ไม่มี การแบ่งปันโอเพ่นซอร์สล้วนๆ ขอบคุณ Star & Fork ทุกคนที่ให้การสนับสนุน