Spring-Boot-Devtools เป็นโมดูลที่ให้บริการนักพัฒนา ฟังก์ชั่นที่สำคัญที่สุดคือการใช้รหัสกับแอพล่าสุดโดยอัตโนมัติ
หลักการคือการรีสตาร์ทแอปพลิเคชันหลังจากค้นพบว่ารหัสมีการเปลี่ยนแปลง แต่ความเร็วเร็วกว่าที่จะเริ่มด้วยตนเอง หลักการที่ลึกล้ำของมันคือการใช้สอง classloaders หนึ่ง classloader โหลดคลาสเหล่านั้นที่จะไม่เปลี่ยนแปลง (แพ็คเกจ JAR ของบุคคลที่สาม) และคลาสอื่น ๆ จะโหลดคลาสที่จะเปลี่ยนเรียกว่ารีสตาร์ท classloader
ด้วยวิธีนี้เมื่อมีการเปลี่ยนแปลงรหัสการรีสตาร์ทคลาสโหลดดั้งเดิมจะถูกยกเลิกและรีสตาร์ทคลาสโหลดจะถูกสร้างขึ้นใหม่ เนื่องจากมีคลาสค่อนข้างน้อยที่ต้องโหลดจึงต้องใช้เวลารีสตาร์ทที่เร็วขึ้น นั่นคือ Devtools จะฟังการเปลี่ยนแปลงไฟล์ภายใต้ ClassPath และจะรีสตาร์ทแอปพลิเคชันทันที (เกิดขึ้นในเวลาที่บันทึก)
1. เปิดฟังก์ชั่น Make Automatic Idea
1. Ctrl + Shift + A -> ค้นหา Make Project โดยอัตโนมัติ -> เลือก
2. Ctrl + Shift + A -> ค้นหารีจิสทรี -> ค้นหาและตรวจสอบคอมไพเลอร์ Automake.allow.when.app.running
ในที่สุดรีสตาร์ทความคิด
2. ใช้ Spring-Boot-1.3 เพื่อเริ่มต้นด้วยฟังก์ชั่นการปรับใช้ร้อน
1. เพิ่มการพึ่งพา Maven
<Effercy> <roupID> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Devtools </artifactid>
2. เปิดการปรับใช้ที่ร้อนแรง
<uild> <plugins> <plugin> <molin> <sloupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Maven-Plugin </artifactid> <การกำหนดค่า> <fork> true </fork> // การกำหนดค่านี้ต้อง </การกำหนดค่า>
3. โครเมี่ยมปิดใช้งานแคช
F12 (หรือ Ctrl+Shift+J หรือ Ctrl+Shift+I) -> เครือข่าย -> ปิดการใช้งานแคช (ในขณะที่ Devtools เปิดอยู่)
ณ จุดนี้คุณสามารถปรับเปลี่ยนรหัสในความคิดได้อย่างมีความสุข หลังจากการแก้ไขคุณสามารถเห็นผลกระทบในเวลาโดยไม่ต้องรีสตาร์ทด้วยตนเองและล้างแคชเบราว์เซอร์
วิธีทดสอบ:
1. แก้ไขคลาส -> บันทึก: แอปพลิเคชันจะรีสตาร์ท
2. แก้ไขไฟล์การกำหนดค่า -> บันทึก: แอปพลิเคชันจะรีสตาร์ท
3. แก้ไขหน้า -> บันทึก: แอปพลิเคชันจะรีสตาร์ทและหน้าจะได้รับการรีเฟรช (หลักการคือการตั้งค่า Spring.ThyMeleaf.cache เป็น FALSE)
ไม่สามารถใช้การวิเคราะห์:
1. เวอร์ชันสปริงบูทที่สอดคล้องกันถูกต้องหรือไม่? ฉันใช้เวอร์ชัน 1.5.3. รีลีสที่นี่
2. ไม่ว่าจะเพิ่มปลั๊กอินและแอตทริบิวต์ <fork> true </fork>
3. ไม่ว่าจะเปิดใช้งาน IDEALIJ MUCHT โดยอัตโนมัติหรือไม่
4. หากการตั้งค่า SpringApplication.SetRegistershutdownhook (เท็จ) ถูกตั้งค่าการรีสตาร์ทอัตโนมัติจะไม่ทำงาน
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น