คำถามและคำตอบสัมภาษณ์ Spring Boot ที่ถูกถามมากที่สุด

เผยแพร่แล้ว: 2022-01-10

Spring 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. มักจะนำไปสู่การพึ่งพาที่ไม่จำเป็นจำนวนมาก ซึ่งทำให้เพิ่มขนาดของไฟล์การปรับใช้