คำถามและคำตอบสัมภาษณ์ Spring Boot ที่ถูกถามมากที่สุด
เผยแพร่แล้ว: 2022-01-10Spring boot เป็นหนึ่งในหัวข้อสำคัญของการสนทนาในการสัมภาษณ์งานด้านไอทีส่วนใหญ่ โดยเฉพาะอย่างยิ่งเมื่อพูดถึงการพัฒนาแอปพลิเคชัน Java เนื่องจากการกำหนดค่าที่รวดเร็ว การกำหนดค่าต่ำ เซิร์ฟเวอร์ในตัว และคุณสมบัติการตรวจสอบตนเอง สปริงบูตช่วยสร้างแอปพลิเคชันที่ใช้จาวาอิสระด้วยโครงสร้างที่แข็งแกร่งและสามารถบำรุงรักษาได้
บทความนี้จะนำคุณผ่านคำถามเกี่ยวกับ Spring Boot ทั้งสำหรับการสัมภาษณ์ระดับใหม่และระดับสูง
สารบัญ
สปริงบูตคืออะไร?
Spring boot เป็นเฟรมเวิร์กที่ใช้ Java เป็นหลักสำหรับการสร้างไมโครเซอร์วิสอิสระหรือการพัฒนาแอปพลิเคชันอย่างรวดเร็ว มาพร้อมกับการสนับสนุนการกำหนดค่าอัตโนมัติเพิ่มเติมและเซิร์ฟเวอร์ฝังตัวสำหรับแอปพลิเคชัน Jetty และ Tomcat
ในทางเทคนิคแล้ว Spring boot หมายถึงเฟรมเวิร์กไมโครโอเพนซอร์ซที่ดูแลโดยองค์กร - Pivotal กรอบงานนี้เป็นแพลตฟอร์มสำหรับนักพัฒนา Java เพื่อสร้างแอปพลิเคชันสปริงเกรดที่ใช้งานจริงและกำหนดค่าได้อัตโนมัติ นักพัฒนา Java ที่ใช้สปริงบูตสามารถเตรียมและกำหนดค่าแอพพลิเคชั่นสปริงทั้งหมดได้อย่างมีประสิทธิภาพ
อะไรที่ทำให้บูทสปริงมีเอกลักษณ์เฉพาะตัว?
Spring boot โดดเด่นกว่ารุ่นอื่นๆ เนื่องจาก:
- ช่วยพัฒนาแอพพลิเคชั่นสปริงแบบสแตนด์อโลนด้วยความต้องการการกำหนดค่าขั้นต่ำ
- เสนอการพึ่งพาเริ่มต้นเพื่อเพิ่มความคล่องตัวและทำให้การกำหนดค่าบิลด์ง่ายขึ้น
- อนุญาตให้คุณฝัง Jetty, Tomcat ฯลฯ โดยไม่ต้องปรับใช้ไฟล์ WAR
- ประกอบด้วยคุณลักษณะที่พร้อมสำหรับการผลิตจำนวนมาก รวมถึงการตรวจสอบสภาพ ระบบเมตริก และระบบการกำหนดค่าภายนอก
อะไรทำให้บู๊ทสปริงเป็นที่นิยมมากขนาดนี้?
Spring boot ใช้ Java ซึ่งเป็นหนึ่งในภาษาโปรแกรมที่เป็นที่ต้องการมากที่สุดซึ่งนักพัฒนาทั่วโลกต่างชื่นชอบ เป็นเครื่องมือที่ยอดเยี่ยมที่ช่วยให้นักพัฒนา Java เรียกใช้และบำรุงรักษาแอประดับองค์กรโดยไม่ต้องกังวลเกี่ยวกับข้อกำหนดการกำหนดค่าและการตรวจสอบความปลอดภัย นอกจากนี้ ชุมชน spring boot นั้นกว้างขวางและมีไหวพริบสูง ข้อมูลที่เข้าถึงได้ง่ายเกี่ยวกับเฟรมเวิร์กนี้ยังช่วยเพิ่มความนิยมอีกด้วย
นอกจากนี้ การใช้สปริงบูตยังให้ประโยชน์อื่นๆ แก่คุณ เช่น:
- ลดเวลาในการพัฒนาในขณะที่เพิ่มผลผลิตของทีมพัฒนา
- ประกอบด้วยคุณลักษณะการกำหนดค่าอัตโนมัติสำหรับส่วนประกอบทั้งหมดสำหรับการออกแบบแอปพลิเคชันระดับการผลิต
- มีการตั้งค่าเริ่มต้นสำหรับการรวมและการทดสอบหน่วย ทำให้เป็นแพลตฟอร์มที่แข็งแกร่งสำหรับนักพัฒนา Java
- ไม่ต้องใช้รหัสสำเร็จรูป การกำหนดค่า XML หรือคำอธิบายประกอบจำนวนมาก
- มีเซิร์ฟเวอร์ HTTP ในตัวเช่น Jetty เพื่อทดสอบแอปพลิเคชันบนเว็บ
- ประกอบด้วยปลั๊กอินต่างๆ เพื่อให้นักพัฒนาทำงานได้อย่างราบรื่นในหน่วยความจำและฐานข้อมูลแบบฝัง
- ช่วยให้ผู้ใช้สามารถเชื่อมต่อกับบริการคิวและฐานข้อมูลเช่น Oracle, MySQL, PostgreSQL, ActiveMQ, MongoDB, Solr, Redis, Rabbit MQ เป็นต้น
คำถามสัมภาษณ์เกี่ยวกับสปริงบูตยอดนิยม – Freshers
ต่อไปนี้เป็นคำถามที่ได้รับความนิยมมากที่สุดสำหรับการสัมภาษณ์ระดับ Spring boot Fresher:
1. พูดถึงข้อดีของการสร้างแอพผ่านสปริงบูต?
ตอบ _ ข้อได้เปรียบที่สำคัญของการใช้ spring boot สำหรับการพัฒนาแอพคือ:
- เข้าใจง่ายมากในขณะที่พัฒนาแอพพลิเคชั่นที่ใช้สปริง
- เป็นเฟรมเวิร์กที่มีอยู่แล้วพร้อมการกำหนดค่าคำอธิบายประกอบแบบฝังและเซิร์ฟเวอร์ HTTP สองด้านนี้ทำให้เข้าใจง่าย
- ช่วยเพิ่มผลผลิตในขณะที่ลดเวลาในการพัฒนา
- ต้องมีการกำหนดค่าน้อยที่สุด
- ผู้ใช้ไม่จำเป็นต้องเขียนการกำหนดค่า XML ใดๆ นอกเหนือจากบางส่วนที่เกี่ยวข้องกับการออกแบบ
2. คุณช่วยบอกเราเกี่ยวกับส่วนประกอบสำคัญของสปริงบูตได้หรือไม่?
ตอบ ส่วนประกอบสำคัญของสปริงบูทคือ:
- ตั้งค่าการกำหนดค่าอัตโนมัติของสปริงบูต
- สปริงบูตสตาร์ท POMs
- บูทสปริง CLI
- กรอบงานตัวกระตุ้นการบูตสปริง
3. เหตุใดนักพัฒนา Java จึงชอบใช้การบูตแบบสปริงมากกว่าสปริง
ตอบ นักพัฒนา Java ส่วนใหญ่ชอบใช้การบูตแบบสปริงมากกว่าสปริง นี่เป็นเพราะคุณสมบัติดังต่อไปนี้:
- การจัดการเวอร์ชัน
- สตาร์ทเตอร์ POM
- การกำหนดค่าอัตโนมัติ
- เซิร์ฟเวอร์สมองกลฝังตัว
- แอคทูเอเตอร์
- การสแกนส่วนประกอบ
- ฐานข้อมูลในหน่วยความจำ
4. โมดูลการพึ่งพาสตาร์ทเตอร์ที่แตกต่างกันของสปริงบูตคืออะไร?
ตอบ _ เครื่องมือพึ่งพาสตาร์ทเตอร์ที่ใช้บ่อยที่สุดคือ:
- ตัวเริ่มต้นการทดสอบ
- เครื่องมือ Data JPA
- ตัวเริ่มต้นการรักษาความปลอดภัย
- จดหมายเริ่มต้น
- เริ่มต้นเว็บ
- ไธมีลีฟสตาร์ทเตอร์
5. คุณช่วยบอกเราหน่อยได้ไหมว่า Spring Boot ทำงานอย่างไร?
ตอบ กรอบงาน Spring boot กำหนดค่าแอปพลิเคชันโดยอัตโนมัติตามอินพุตการพึ่งพาโดยผู้พัฒนา Java ให้กับโครงการแอปพลิเคชันและการกำหนดค่าคำอธิบายประกอบ จุดเริ่มต้นของแอปพลิเคชันการบูตสปริงใดๆ ประกอบด้วย คำอธิบายประกอบการกำหนดค่า “ @SpringBootApplication ” พร้อมกับวิธีการหลัก
Spring Boot ยังสแกนส่วนประกอบโปรเจ็กต์ทั้งหมดโดยอัตโนมัติด้วย คำอธิบายประกอบ “@ComponentScan “
6. คุณช่วยบอกเราได้ไหมว่าคำอธิบายประกอบของ @SpringBootApplication ทำอะไรภายใน
ตอบ คำอธิบายประกอบของ “@SpringBootApplication” เหมือนกับการใช้ “ @Configuration, @EnableAutoConfiguration ” และ “ @ComponentScan” พร้อมกับแอตทริบิวต์เริ่มต้นทั้งหมดของคำอธิบายประกอบเหล่านี้ เฟรมเวิร์กของ Spring boot ช่วยให้นักพัฒนา Java ใช้หมายเหตุประกอบเดียวแทนที่จะใช้หลายคำอธิบายประกอบ
7. จุดประสงค์ของการใช้คำอธิบายประกอบ @ComponentScan ในไฟล์คลาสคืออะไร
ตอบ _ กรอบงานการบูตสปริงจะสแกนการประกาศแพ็คเกจและถั่วทั้งหมดเมื่อเริ่มต้นแอปพลิเคชัน หลังจากนี้ เราจำเป็นต้องฝัง คำอธิบายประกอบการกำหนดค่า @ComponentScan ซึ่งจะช่วยให้ไฟล์คลาสสแกนส่วนประกอบทั้งหมดที่เพิ่มในโครงการ
คำถามสัมภาษณ์เกี่ยวกับสปริงบูตยอดนิยม – ขั้นสูง
ต่อไปนี้คือคำถามยอดนิยมบางส่วนที่ถามในการสัมภาษณ์ระดับมืออาชีพของ Spring Boot:
1. เป็นไปได้อย่างไรที่จะแทนที่คุณสมบัติเริ่มต้นทั้งหมดภายในแอพพลิเคชั่น Spring boot?
ตอบ _ Spring boot มีคุณสมบัติหลายอย่างที่สามารถเขียนทับได้ คุณสามารถทำได้โดยระบุการเปลี่ยนแปลงภายในคุณสมบัติของแอปพลิเคชัน ตัวอย่างเช่น หากคุณต้องการระบุคำนำหน้าหรือคำต่อท้ายในแอปพลิเคชัน Spring MVC คุณสามารถทำได้โดยการฝังคุณสมบัติต่อไปนี้ภายในไฟล์ application.properties:
- “spring.mvc.view.suffix:”
- “.jsspring.mvc.view.prefix: /WEB-INF/”
2. คุณจะเรียกใช้แอปพลิเคชัน Spring boot บนพอร์ตที่กำหนดเองได้อย่างไร
ตอบ ในการรันแอพพลิเคชั่น spring boot ในพอร์ตแบบกำหนดเอง คุณจะต้องวาง เซิร์ฟเวอร์เท่านั้น คุณสมบัติ พอร์ต ภายในคุณสมบัติของแอปพลิเคชัน ตัวอย่างเช่น:
“ เซิร์ฟเวอร์.พอร์ต=8050”
3. เหตุใดคุณจึงเลือกใช้โมดูลสปริงบูตในแอปพลิเคชันจาวาของคุณ
ตอบ _ การใช้โมดูลสปริงบูตทำให้เราสร้างแอปพลิเคชันที่ใช้สปริงได้ง่ายขึ้น ซึ่งช่วยให้คุณประหยัดเวลาและความพยายามอย่างมาก
สมมติว่าคุณต้องการพัฒนาโครงการ spring boot โดย ใช้ ActiveMQ สำหรับสิ่งนี้ คุณสามารถฝัง “ spring–boot–starter–activemq ” เป็นโค้ดสิ่งประดิษฐ์ได้ จะใช้ค่าเริ่มต้นโดยอัตโนมัติโดยการสร้างแอปพลิเคชันสปริงที่ใช้ ActivemQ
อย่างไรก็ตาม สมมติว่าคุณไม่ต้องการใช้ ActiveMQ ในตัว ที่นี่ คุณสามารถแทนที่ “spring.activemq.broker-URL” ภายใน application_properties เพื่อใช้ ActiveMQ ภายนอกได้
4. บอกเราเกี่ยวกับการใช้ DevTools ในโมดูลของ Spring boot?
ตอบ _ Spring boot มาพร้อมกับ DevTools แบบฝัง ซึ่งจะเพิ่มประสิทธิภาพโดยรวมของนักพัฒนา ข้อได้เปรียบที่สำคัญที่สุดของ DevTools คือคุณไม่จำเป็นต้องปรับใช้แอปพลิเคชันซ้ำทุกครั้งที่ทำการเปลี่ยนแปลง โดยปกติ นักพัฒนาซอฟต์แวร์สามารถโหลดการเปลี่ยนแปลงที่เกี่ยวข้องซ้ำได้โดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์ วิธีนี้ช่วยหลีกเลี่ยงความเจ็บปวดจากการปรับใช้แอปพลิเคชันใหม่ทุกครั้งที่มีการเปลี่ยนแปลง
5. คุณหมายถึงอะไรโดยตัวกระตุ้นในโมดูลของสปริงบูต?
ตอบ _ สปริงบูทแอคทูเอเตอร์เป็นคุณสมบัติที่สำคัญที่สุดของบูทสปริง ใช้เพื่อเข้าถึงรูปแบบปัจจุบันของแอปพลิเคชันที่ทำงานอยู่ในสภาพแวดล้อมที่ใช้งานจริง นอกจากนี้ คุณสามารถใช้ตัววัดหลายตัวเพื่อตรวจสอบสถานะปัจจุบันของแอปพลิเคชัน Java
Spring boot actuators ให้บริการเว็บที่ราบรื่นด้วยจุดปลายที่สามารถตรวจสอบตัวชี้วัดที่จำเป็นได้อย่างง่ายดาย ตัวอย่างเช่น ตำแหน่งข้อมูล “/ metrics:” จะแสดงตัววัด เช่น โปรเซสเซอร์ หน่วยความจำว่าง เวลาทำงาน และคุณสมบัติอื่นๆ
ด้วยวิธีนี้ ตัวกระตุ้นการบูตสปริงช่วยให้นักพัฒนาตรวจสอบแอปพลิเคชันในสภาพแวดล้อมการผลิตได้ ตำแหน่งข้อมูล RESTful เหล่านี้ค่อนข้างละเอียดอ่อน ซึ่งหมายความว่ามีการจำกัดการเข้าถึงสำหรับผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์เท่านั้น อย่างไรก็ตาม คุณสามารถแทนที่ in-app.properties เพื่อเปลี่ยนคุณสมบัตินี้ได้
6. คุณจะนำระบบรักษาความปลอดภัยของ Spring ไปใช้ในแอปพลิเคชันที่ใช้ Spring boot ได้อย่างไร
ตอบ _ การนำการรักษาความปลอดภัยสปริงไปใช้ในแอพพลิเคชั่นบู๊ทสปริงใด ๆ จำเป็นต้องมีการกำหนดค่าขั้นต่ำ คุณเพียงแค่ต้องป้อน spring-boot-starter-security-starter ใน pom.xml หลังจากนี้ คุณต้องป้อนคลาส configuration ที่จะขยายไปยัง WebSecurityConfigurerAdapter โดยการแทนที่เมธอดทั้งหมดเพื่อให้ได้การรักษาความปลอดภัยที่จำเป็นในแอปพลิเคชัน Spring boot ใดๆ
7. บอกเราเกี่ยวกับความแตกต่างระหว่าง @Controller และ @RestController ในโมดูล Spring Boot หรือไม่
ตอบ โมเดล @RestController จะคืนค่าอ็อบเจ็กต์และข้อมูลอ็อบเจ็กต์ ทั้งสองสิ่งนี้เขียนโดยตรงโดยใช้การตอบสนอง HTTP เป็น XML หรือ JSON
ในทางกลับกัน @Controller Map ของรุ่นสปริงบูตช่วยให้สามารถดูโครงการในรูปแบบเทมเพลตและทำให้มนุษย์สามารถอ่านได้
คุณกำลังตั้งเป้าที่จะสัมภาษณ์งานบู๊ทสปริงหรือไม่?
ตรวจสอบหลักสูตร วิทยาศาสตรมหาบัณฑิตสาขาวิทยาการคอมพิวเตอร์ ใน upGrad หลักสูตรนี้จะแนะนำคุณเกี่ยวกับ Java, Python และเครื่องมืออื่นๆ อีกมากมาย เช่น Spark, MapReduce, Tableau, AWS, Keras เป็นต้น หลักสูตรออนไลน์นี้ดูแลจัดการโดยผู้เชี่ยวชาญในอุตสาหกรรมและพี่เลี้ยงระดับแนวหน้า ซึ่งจะเป็นตัวเปลี่ยนเกมทั้งหมดสำหรับผู้ที่ต้องการเพิ่มทักษะในขณะที่รักษา ภาระผูกพันทางวิชาชีพในปัจจุบันของพวกเขา
บทสรุป
Spring boot เป็นโปรแกรมเสริมที่ทันสมัยและจำเป็นสำหรับนักพัฒนา Java วันนี้ ตำแหน่งงานด้านการพัฒนาซอฟต์แวร์จำนวนมากต้องการให้นักพัฒนามีความรู้เกี่ยวกับ Spring Boot ท้ายที่สุด มันทำให้การพัฒนาแอพบน Java เป็นเรื่องง่ายและไม่ยุ่งยาก ไม่ว่าคุณจะเป็นนักพัฒนาที่ใหม่กว่าหรือมากประสบการณ์ การมีความรอบรู้เกี่ยวกับรองเท้าบู๊ตสปริงจะช่วยให้คุณได้เปรียบคู่แข่งของคุณ
สปริงบูตใช้กับแอพพลิเคชั่นที่ไม่ใช่สปริงได้หรือไม่?
ไม่ สิ่งนี้เป็นไปไม่ได้เพราะการบูทสปริงจำกัดเฉพาะแอปพลิเคชันที่ใช้สปริงทั้งหมดเท่านั้น
สปริงบูตใช้ในการพัฒนา REST API เท่านั้นหรือไม่
ไม่ spring boot ไม่ได้มีไว้สำหรับ API ที่ใช้ REST เท่านั้น แทนที่จะเป็นกลไกการกำหนดค่าอัตโนมัติสำหรับแอปที่ใช้ Java ดังนั้นคุณจึงใช้ได้กับทั้งส่วนหลังและส่วนหน้า
ข้อเสียของ Spring boot คืออะไร?
ข้อเสียที่สำคัญคือ:
1. แม้ว่าจะเป็นไมโครเซอร์วิสที่ยอดเยี่ยม แต่ก็ไม่เหมาะสำหรับโครงการขนาดใหญ่
2. การแปลงแอปรุ่นเก่าหรือโปรเจ็กต์ Spring ที่มีอยู่เป็นแอป Spring Boot นั้นค่อนข้างใช้เวลานาน
3. มักจะนำไปสู่การพึ่งพาที่ไม่จำเป็นจำนวนมาก ซึ่งทำให้เพิ่มขนาดของไฟล์การปรับใช้