15 คำถามสัมภาษณ์ MVC ฤดูใบไม้ผลิที่ต้องรู้
เผยแพร่แล้ว: 2018-03-25Spring ได้กลายเป็นหนึ่งในเฟรมเวิร์ก Java ที่ใช้มากที่สุดสำหรับการพัฒนาเว็บแอปพลิเคชัน แอปพลิเคชัน Java ใหม่ทั้งหมดเป็นค่าเริ่มต้นโดยใช้เฟรมเวิร์ก Spring core และ Spring MVC ด้วยความนิยมที่เพิ่มขึ้น นายหน้าทั่วโลกจึงกำลังมองหาผู้สมัครที่ลงมือปฏิบัติจริงด้วยกรอบงาน Spring หากคุณกำลังจะเข้ารับการสัมภาษณ์สำหรับบทบาทนักพัฒนา Java Spring MVC เป็นหนึ่งในสิ่งแรกที่คุณควรรวบรวมความรู้เกี่ยวกับคำถามสัมภาษณ์เกี่ยวกับกรอบงาน Spring ไม่ว่าคุณจะเป็นมือใหม่หรือมีประสบการณ์ก็ตาม
ท้ายที่สุดแล้ว เฟรมเวิร์ก Spring MVC เป็นเฟรมเวิร์ก Java ที่ใช้กันมากที่สุด และคุณต้องถูกถามคำถามในและใกล้เคียงกัน ในการสัมภาษณ์ Java (หรือการสัมภาษณ์ที่เกี่ยวข้องใดๆ) ที่คุณเข้าร่วม หากคุณไม่ทราบ Spring MVC เป็นเฟรมเวิร์กที่ใช้ Java ที่แข็งแกร่งซึ่งช่วยสร้างเว็บแอปพลิเคชัน ตามชื่อของมัน มันใช้สถาปัตยกรรม MVC – Model, View, Controller Spring MVC มอบวิธีอันหรูหราในการใช้ Spring กับเฟรมเวิร์ก MVC เฟรมเวิร์ก Spring ซึ่งเปิดตัวในปี 2545 เป็นเฟรมเวิร์กแบบโอเพนซอร์ส ซึ่งหมายความว่านักพัฒนาทั่วโลกสามารถมีส่วนร่วมในการพัฒนาและเผยแพร่เฟรมเวิร์กเพิ่มเติมได้
เรียนรู้การสร้างแอปพลิเคชัน เช่น Swiggy, Quora, IMDB และอื่นๆนั่นยังหมายความว่ามีชุมชนนักพัฒนาที่กระตือรือร้นอยู่เสมอเพื่อช่วยคุณในการสอบถามของคุณ การเป็นโอเพ่นซอร์สยังช่วยเพิ่มประโยชน์มากมายให้กับกรอบงาน Spring โดยเฉพาะอย่างยิ่ง หากคุณเริ่มต้นอาชีพใน Java คุณต้องได้รับคำแนะนำ และชุมชนที่หลากหลายของนักพัฒนา Java ช่วยให้แน่ใจว่าคุณจะไม่ขาดคำแนะนำใดๆ เมื่อพูดถึงการทำงานกับ Spring MVC
ด้วยสิทธิประโยชน์มากมายที่จะนำเสนอ ไม่ต้องสงสัยเลยว่าทำไม Spring MVC จึงเป็นหัวข้อโปรดของการสัมภาษณ์ที่จะถามคุณ
ในบทความนี้ เราจะพูดถึง 15 คำถามที่ต้องรู้ของ Spring MVC ซึ่งคุณคาดว่าจะพบในการสัมภาษณ์ทุกครั้ง
1. กรอบงานสปริงคืออะไร?
Spring เป็นเฟรมเวิร์กโอเพ่นซอร์สที่สร้างขึ้นเพื่อทำให้การพัฒนาแอปพลิเคชันง่ายขึ้น มีโครงสร้างเป็นชั้นซึ่งช่วยให้นักพัฒนาสามารถเลือกส่วนประกอบที่ใช้ได้ ประกอบด้วยส่วนประกอบหลักสามส่วน ได้แก่ Spring Core, Spring AOP และ Spring MVC

นอกจากนี้ คุณสามารถพูดคุยเกี่ยวกับประสบการณ์ของคุณกับ Spring ได้ หากมี ที่จะเพิ่มน้ำหนักให้กับคำตอบของคุณ
เหตุใดบริษัทต่างๆ จึงมองหาการจ้าง Full Stack Developers2. คุณสมบัติหลักของ Spring framework คืออะไร?
Spring framework มีคุณสมบัติมากมายที่จะทำให้ชีวิตของนักพัฒนาง่ายขึ้น บางส่วนของพวกเขาคือ:
- น้ำหนักเบา: สปริงมีน้ำหนักเบามาก รุ่นพื้นฐานมีขนาดประมาณ 1MB โดยมีค่าโสหุ้ยในการประมวลผลเล็กน้อย
- การผกผันของการควบคุม (IoC): การ พึ่งพาการฉีดหรือ การผกผันของการควบคุม เป็นหนึ่งในคุณสมบัติที่สำคัญที่สุดของสปริง เมื่อใช้ IoC นักพัฒนาไม่จำเป็นต้องสร้างสภาพแวดล้อมที่สมบูรณ์สำหรับวัตถุและการพึ่งพา พวกเขาสามารถสร้างและทดสอบวัตถุที่พวกเขากำลังจัดการ ณ จุดเวลาที่กำหนด การอ้างอิงวัตถุจะถูกรวมหรือเรียกใช้เมื่อมีความจำเป็น
- Aspect-Oriented Programming: Spring รองรับ Aspect-Oriented Programming AOP แยกฟังก์ชันรองจากตรรกะทางธุรกิจของโปรแกรมเมอร์ สิ่งนี้ไม่เพียงแต่ทำให้เป็นโมดูลเท่านั้น แต่ยังทำให้โค้ดสามารถบำรุงรักษาได้
- สถาปัตยกรรม MVC: Spring มาพร้อมกับเฟรมเวิร์ก MVC สำหรับเว็บแอปพลิเคชัน เฟรมเวิร์กนี้สามารถกำหนดค่าได้สูงโดยใช้เทคโนโลยีต่างๆ เช่น JSP, Tiles, iText และ POI
- การจัดการข้อยกเว้น JDBC: Spring มาพร้อมกับ JDBC abstraction layer ที่กำหนดไว้ล่วงหน้า ซึ่งทำให้กระบวนการจัดการข้อยกเว้นโดยรวมง่ายขึ้น
3. อธิบายเพิ่มเติมเล็กน้อยเกี่ยวกับ Dependency Injection
Inversion of Control หรือ Dependency Injection มีจุดมุ่งหมายเพื่อลดความซับซ้อนของกระบวนการสร้างวัตถุโดยทำตามแนวคิดง่ายๆ – อย่าสร้างวัตถุ เพียงอธิบายว่าควรสร้างวัตถุอย่างไร เมื่อใช้ IoC อ็อบเจ็กต์จะได้รับการอ้างอิงในเวลาบิลด์โดยเอนทิตีภายนอกที่รับผิดชอบในการประสานงานแต่ละอ็อบเจ็กต์ในระบบ โดยพื้นฐานแล้ว เรากำลังฉีดการพึ่งพาลงในวัตถุโดยใช้ IOC หรือ Dependency Injection
4. อธิบายการฉีดสารพึ่งพิงประเภทต่างๆ ในฤดูใบไม้ผลิ? ใช้ตอนไหน?
Spring ให้นักพัฒนามีการฉีดพึ่งพาสองประเภทต่อไปนี้:
- DI แบบคอนสตรัคเตอร์: DI แบบอิงคอนสตรัคเตอร์ทำได้โดยส่งอาร์กิวเมนต์จำนวนหนึ่ง (ซึ่งแต่ละรายการแสดงถึงการพึ่งพาคลาสอื่น) ไปยังคอนสตรัคเตอร์ของคลาส อย่างง่าย ๆ การพึ่งพาจะได้รับในรูปแบบของพารามิเตอร์คอนสตรัคเตอร์
- DI แบบอิงตัวตั้งค่า: เมื่อคุณทำงานกับคอนสตรัคเตอร์แบบไม่มีอาร์กิวเมนต์ คุณจะต้องตั้งค่าโดยส่งผ่านอาร์กิวเมนต์ผ่านฟังก์ชัน setter เพื่อสร้างอินสแตนซ์ bean ที่อยู่ระหว่างการพิจารณา ซึ่งเรียกว่าการฉีดขึ้นต่อกันแบบอิงตัวตั้งค่า
คุณจะใช้ตัวใดตัวหนึ่งเหล่านี้เมื่อใด ตามความต้องการของคุณ อย่างไรก็ตาม ขอแนะนำให้ใช้ DI แบบ Setter สำหรับการขึ้นต่อกันที่เป็นทางเลือกและ DI แบบอิงคอนสตรัคเตอร์สำหรับการขึ้นต่อกันที่บังคับ
สัมภาษณ์กับ Farooq Adam ผู้ร่วมก่อตั้ง Fynd
5. กรอบงาน Spring MVC คืออะไร
Spring MVC เป็นหนึ่งในองค์ประกอบหลักของเฟรมเวิร์กสปริง มันมาพร้อมกับส่วนประกอบและองค์ประกอบที่พร้อมใช้งานที่ช่วยให้นักพัฒนาสร้างเว็บแอปพลิเคชันที่ยืดหยุ่นและมีประสิทธิภาพ ตามชื่อที่แนะนำ สถาปัตยกรรม MVC จะแยกแง่มุมต่างๆ ของแอปพลิเคชันออกจากกัน – ตรรกะอินพุต ตรรกะทางธุรกิจ และตรรกะ UI นอกจากนี้ยังมีการมีเพศสัมพันธ์แบบหลวมระหว่าง M, V และ C ของแอปพลิเคชัน
6. ประโยชน์ของเฟรมเวิร์ก Spring MVC เหนือเฟรมเวิร์ก MVC อื่นๆ มีอะไรบ้าง
กรอบงาน Spring MVC มีประโยชน์ที่ชัดเจนเหนือกรอบงานอื่นๆ ประโยชน์บางประการคือ:
- การแยกบทบาทที่ชัดเจน – มีวัตถุเฉพาะสำหรับทุกบทบาท จึงมีการแยกบทบาทอย่างชัดเจน
- รหัสธุรกิจที่ใช้ซ้ำได้ – ด้วย Spring MVC คุณไม่จำเป็นต้องทำซ้ำรหัสของคุณ คุณสามารถใช้อ็อบเจ็กต์ที่มีอยู่เป็นคำสั่งแทนการมิเรอร์อ็อบเจ็กต์เพื่อขยายคลาสฐานเฟรมเวิร์กเฉพาะ
- การผูกและการตรวจสอบที่ปรับแต่งได้
- ความละเอียดของสถานที่และธีมที่ปรับแต่งได้
- การแมปตัวจัดการที่ปรับแต่งได้และดูความละเอียด
- ตั้งแต่ Spring 2.0 เป็นต้นไป เฟรมเวิร์กจะมาพร้อมกับไลบรารีแท็กฟอร์ม JSP ซึ่งทำให้การเขียนฟอร์มในหน้า JSP ง่ายขึ้นมาก
7. DispatcherServlet คืออะไร?
เฟรมเวิร์ก Spring MVC ขับเคลื่อนด้วยคำขอและได้รับการออกแบบโดยใช้ Servlet ส่วนกลางที่จัดการคำขอและการตอบสนอง HTTP ทั้งหมด อย่างไรก็ตาม DispatcherServlet ทำอะไรได้มากกว่านั้น รวมเข้ากับคอนเทนเนอร์ IoC ได้อย่างราบรื่นและช่วยให้คุณใช้คุณลักษณะแต่ละอย่างของ Spring
เมื่อได้รับคำขอ HTTP DispatcherServlet จะปรึกษา HandlerMapping (นี่คือไฟล์การกำหนดค่า) เพื่อเรียก Controller ที่เหมาะสม จากนั้นผู้ควบคุมจะเรียกวิธีการบริการที่เหมาะสมเพื่อตั้งค่าข้อมูลรุ่น นอกจากนี้ยังส่งคืนชื่อมุมมองไปที่ DispatcherServlet DispatcherServlet ด้วยความช่วยเหลือของ ViewResolver จะรับมุมมองที่กำหนดไว้สำหรับคำขอ เมื่อการดูเสร็จสิ้นแล้ว DispatcherServlet จะส่งข้อมูลโมเดลไปยัง View – ซึ่งในที่สุดก็แสดงผลบนเบราว์เซอร์
การพัฒนาที่ขับเคลื่อนด้วยการทดสอบคืออะไร: คู่มือสำหรับมือใหม่
8. คลาสคอนโทรลเลอร์ด้านหน้าของ Spring MVC คืออะไร?
ตัวควบคุมด้านหน้าคือตัวควบคุมที่จัดการคำขอทั้งหมดสำหรับเว็บแอปพลิเคชัน เมื่อพูดถึง Spring MVC DispatcherServlet คือคอนโทรลเลอร์ด้านหน้า เมื่อคำขอเว็บถูกส่งไปยังแอปพลิเคชัน Spring MVC DIspatcherServlet จะดูแลทุกอย่าง ขั้นแรกให้ใช้คำขอ จากนั้นจะจัดระเบียบองค์ประกอบต่างๆ เช่น ตัวจัดการคำขอ ตัวควบคุม ตัวแก้ไขการดู และอื่นๆ ทั้งหมดที่จำเป็นในการจัดการคำขอ และสุดท้ายก็แสดงเนื้อหาบนเบราว์เซอร์

9. รูปแบบ Viewresolver คืออะไรและทำงานอย่างไรใน MVC
View Resolver เป็นรูปแบบ J2EE ซึ่งช่วยให้แอปพลิเคชันสามารถเลือกเทคโนโลยีแบบไดนามิกสำหรับการแสดงผลข้อมูลบนเบราว์เซอร์ (View) สามารถใช้เทคโนโลยีใดๆ เช่น HTML, JSP, Tapestry, XSLT, JSF หรือเทคโนโลยีอื่นๆ ดังกล่าวสำหรับ View ได้ รูปแบบ View Resolver จะจับการแมปของมุมมองต่างๆ Controller จะคืนค่าชื่อ View ซึ่งจะถูกส่งต่อไปยัง View Resolver เพื่อเลือกเทคโนโลยีที่เหมาะสม
10. Spring MVC ให้การสนับสนุนการตรวจสอบอย่างไร
Spring รองรับการตรวจสอบสองประเภทเป็นหลัก:
- การใช้คำอธิบายประกอบ JSR-303 และการนำการอ้างอิงไปใช้ เช่น Hibernate Validator หรือ
- การใช้งานอินเทอร์เฟซ org.springframework.validation.Validator
11. ผู้ใช้ได้รับข้อผิดพลาดในการตรวจสอบความถูกต้องในช่องอื่น ๆ ในการทำเครื่องหมายที่ช่องทำเครื่องหมาย หลังจากนั้นจะยกเลิกการเลือก สถานะการเลือกปัจจุบันในวัตถุคำสั่งของ Spring MVC คืออะไร คุณจะแก้ไขปัญหานี้อย่างไร
นี่เป็นหนึ่งในคำถามที่ตอบยากกว่าถ้าคุณไม่ทราบพฤติกรรม HTTP Post ใน Spring MVC
ระหว่างโพสต์ HTTP หากคุณยกเลิกการเลือกช่องทำเครื่องหมาย HTTP จะไม่มีพารามิเตอร์คำขอสำหรับช่องทำเครื่องหมาย ซึ่งหมายความว่าระบบจะไม่เลือกการเลือกที่อัปเดต ในการแก้ไขปัญหานั้น คุณสามารถใช้ฟิลด์แบบฟอร์มที่ซ่อนอยู่ซึ่งขึ้นต้นด้วย '_'
วิธีประสบความสำเร็จในงานพัฒนาซอฟต์แวร์ครั้งแรกของคุณ
12. คุณจะเปรียบเทียบเฟรมเวิร์ก MVC กับสถาปัตยกรรมสามระดับอย่างไร
สถาปัตยกรรมสามระดับคือรูปแบบสถาปัตยกรรมในขณะที่ MVC เป็นรูปแบบการออกแบบ
ต้องบอกว่าในแอปพลิเคชันขนาดใหญ่ MVC จะสร้างระดับการนำเสนอของสถาปัตยกรรมสามระดับ โมเดล มุมมอง และตัวควบคุมเกี่ยวข้องกับการนำเสนอเท่านั้น พวกเขาใช้ระดับกลางเพื่อเติมโมเดล
13. เราควรใช้ JDBC ใน Spring เพื่อเพิ่มประสิทธิภาพการทำงานอย่างไร
Spring จัดเตรียมคลาสเทมเพลตที่เรียก ว่า JDBCTemplate การใช้ JDBC กับเทมเพลตนี้ช่วยให้ประสิทธิภาพดีขึ้นมากมาย
14. คุณหมายถึงอะไรโดย "Bean" ในบริบทของกรอบงาน Spring?
คลาสใดๆ ที่เริ่มต้นโดยคอนเทนเนอร์ IoC เรียกว่า bean in Spring วงจรชีวิตของ Spring Bean ได้รับการจัดการโดย Spring IoC Container
15. “ขอบเขต” ในการอ้างอิงถึง Spring Beans คืออะไร?
Spring Beans มาพร้อมกับห้าขอบเขตต่อไปนี้:
- ต้นแบบ : ทุกครั้งที่มีการขอถั่ว แต่ละครั้งจะมีการสร้างต้นแบบแยกต่างหาก
- คำขอ : เหมือนกับขอบเขตก่อนหน้า แต่สำหรับแอปพลิเคชันบนเว็บเท่านั้น สำหรับคำขอ HTTP แต่ละรายการ Spring จะสร้างอินสแตนซ์ bean ใหม่
- Singleton : มีการสร้าง bean เพียงอันเดียวสำหรับทุกคอนเทนเนอร์ และทำหน้าที่เป็นขอบเขตเริ่มต้นของ bean นั้น ในกรณีเหล่านี้ทั้งหมด bean ไม่สามารถใช้ตัวแปรอินสแตนซ์ที่ใช้ร่วมกันได้ เนื่องจากอาจทำให้ข้อมูลไม่สอดคล้องกัน
- เซสชัน : bean ถูกสร้างขึ้นสำหรับทุกเซสชัน HTTP
- Global-session : Global session ถูกสร้างขึ้นสำหรับแอ็พพลิเคชันพอร์ตเล็ต
เฟรมเวิร์ก Spring ขยายได้ กล่าวคือ คุณสามารถสร้างขอบเขตของคุณเองได้เช่นกัน แอตทริบิวต์ "ขอบเขต" ขององค์ประกอบ bean ใช้เพื่อกำหนดขอบเขต
วิธีการเป็นนักพัฒนาเต็มกอง
ห่อ…
นี่คือทั้งหมดที่เกี่ยวกับคำถามและคำตอบในการสัมภาษณ์ของ Spring ที่ต้องรู้ซึ่งหมุนเวียนไปตามกรอบงาน Spring – และ Spring MVC เพื่อให้แม่นยำ หากคุณเป็นนักพัฒนา Java ที่ต้องการเริ่มต้นใช้งาน Spring ไม่มีเวลาไหนจะดีไปกว่านี้แล้ว! อ่านเพิ่มเติมหากคุณกำลังมองหาคำถามสัมภาษณ์ Java
ใช้เวลาอันมีค่าของคุณเพื่อรับมือกับคำถามสัมภาษณ์ Java Spring แล้วคุณจะพร้อมลุย องค์กรต่างๆ ต่างมองหานักพัฒนาที่สามารถควบคุมเฟรมเวิร์กนี้ได้อย่างแข็งแกร่ง ต้องขอบคุณฟีเจอร์ที่มีให้

ลงทะเบียนเรียนหลักสูตรวิศวกรรมซอฟต์แวร์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
