ฉันมีแอปพลิเคชัน Spring Boot ฉันได้เพิ่มการอ้างอิงจำนวนมาก (น่าเสียดายที่ดูเหมือนว่าฉันต้องการสิ่งเหล่านี้ทั้งหมด) และเวลาเริ่มต้นก็เพิ่มขึ้นค่อนข้างมาก เพียงแค่ทำSpringApplication.run(source, args)
ใช้เวลา 10 วินาที
แม้ว่าอาจจะไม่มากเมื่อเทียบกับสิ่งที่ "เคยชิน" แต่ฉันไม่พอใจที่ต้องใช้เวลามากขนาดนั้นส่วนใหญ่เป็นเพราะมันทำลายขั้นตอนการพัฒนา ในตอนนี้แอปพลิเคชันมีขนาดค่อนข้างเล็กดังนั้นฉันจึงถือว่าเวลาส่วนใหญ่เกี่ยวข้องกับการอ้างอิงที่เพิ่มเข้ามาไม่ใช่คลาสของแอปเอง
ฉันถือว่าปัญหาคือการสแกน classpath แต่ฉันไม่แน่ใจว่าจะทำอย่างไร:
- ยืนยันว่าเป็นปัญหา (เช่นวิธี "ดีบัก" Spring Boot)
- ถ้าเป็นสาเหตุจริงๆจะ จำกัด ยังไงให้มันเร็วขึ้น ตัวอย่างเช่นถ้าฉันรู้ว่าการอ้างอิงหรือแพ็คเกจบางอย่างไม่มีสิ่งที่ Spring ควรจะสแกนมีวิธี จำกัด หรือไม่
ฉันคิดว่าการปรับปรุง Spring ให้มีการเริ่มต้นถั่วแบบคู่ขนานระหว่างการเริ่มต้นจะทำให้สิ่งต่างๆเร็วขึ้น แต่คำขอการเพิ่มประสิทธิภาพนั้นเปิดให้บริการตั้งแต่ปี 2554 โดยไม่มีความคืบหน้าใด ๆ ฉันเห็นความพยายามอื่น ๆ ใน Spring Boot เองเช่นการปรับปรุงความเร็วในการสแกน Tomcat JarScanningแต่นั่นเป็นความเฉพาะของ Tomcat และถูกยกเลิกไปแล้ว
บทความนี้:
แม้ว่าจะมุ่งเป้าไปที่การทดสอบการรวม แต่แนะนำให้ใช้lazy-init=true
อย่างไรก็ตามฉันไม่รู้ว่าจะใช้สิ่งนี้กับถั่วทั้งหมดใน Spring Boot โดยใช้การกำหนดค่า Java ได้อย่างไร - มีคำแนะนำที่นี่หรือไม่
ข้อเสนอแนะ (อื่น ๆ ) ยินดีต้อนรับ
@ComponentScan
เหล่านั้นจะถูกสแกนด้วย อีกประการหนึ่งคือตรวจสอบให้แน่ใจว่าคุณไม่ได้เปิดใช้งานการดีบักหรือการติดตามการบันทึกเนื่องจากโดยทั่วไปการบันทึกนั้นช้าช้ามาก