Câu hỏi phỏng vấn Spring Boot
Bởi Aaron Cao · Cập nhật

Hãy chuẩn bị cho các câu hỏi về autoconfiguration và starter, dependency injection và bean scope, profile và cấu hình bên ngoài, Spring Data JPA, REST controller và xử lý exception, testing slice, và Actuator. Các vòng phỏng vấn senior còn hỏi thêm về ranh giới transaction, caching, và cách một service hoạt động qua các lần khởi động lại.
Nhà tuyển dụng hỏi gì về autoconfiguration và starter?
Có thể bạn dùng Spring Boot mỗi ngày mà chưa từng đọc log khởi động của nó, và nhà tuyển dụng biết điều đó, nên họ thường bắt đầu từ đây. Phần này gồm các câu hỏi kiểm tra xem bạn hiểu framework hay chỉ biết các giá trị mặc định của nó.
@SpringBootApplicationthực sự kết hợp những gì, và nếu bỏ một phần thì điều gì sẽ hỏng?- Autoconfiguration quyết định cấu hình gì như thế nào, và annotation điều kiện đóng vai trò gì?
- Starter là gì, và bên trong nó có gì ngoài các dependency?
- Làm sao để ghi đè hoặc tắt một autoconfiguration cụ thể?
- Embedded server đến từ đâu, và bạn sẽ thay thế nó thế nào?
Một câu trả lời tốt sẽ gắn cơ chế đó với điều bạn thực sự đã làm: một bean bạn phải loại trừ, một starter bạn đã thay thế, một lỗi khởi động mà bạn đã truy ra qua condition evaluation report.
Những câu hỏi nào về core container và dữ liệu thường xuất hiện?
- Dependency injection. Constructor injection so với field injection, vì sao constructor injection được ưu tiên, và cách giải quyết khi có hai bean ứng viên cùng loại.
- Vòng đời và scope của bean. Vì sao singleton là scope mặc định, khi nào scope request hoặc prototype là đúng, và điều gì khiến việc chia sẻ một bean singleton trở nên không an toàn.
- Cấu hình. Thứ tự ưu tiên property, profile theo môi trường, và sự khác biệt giữa
@ConfigurationPropertiesvới việc inject giá trị rải rác. - Spring Data JPA. Các phương thức truy vấn dẫn xuất, vấn đề N cộng 1, lazy so với eager fetching, và khi nào nên chuyển sang native query.
- Transaction. Proxy
@Transactionalthực sự chặn cái gì, vì sao self-invocation lại âm thầm bỏ qua transaction, và các quy tắc rollback hoạt động thế nào với checked exception.
Câu hỏi về transaction proxy là nơi một câu trả lời tự tin thường sụp đổ nhất, vì vậy hãy chuẩn bị để giải thích ranh giới của proxy chứ không chỉ nêu tên annotation.
Nên nói thế nào về thiết kế REST, testing, và vận hành?
Ngoài container, nhà tuyển dụng còn muốn thấy những phần thể hiện trong production. Ở tầng web: cách chọn status code, validation, và xử lý lỗi tập trung bằng @ControllerAdvice thay vì try-catch trong từng controller. Về testing: sự khác biệt giữa một @SpringBootTest đầy đủ và một slice như test tầng web, và vì sao khởi động cả context chỉ cho một test controller là thói quen chậm chạp. Về vận hành: Actuator lộ ra những gì, endpoint nào không bao giờ được public, và health check nuôi dưỡng việc deploy ra sao.
Hãy hình dung một kỹ sư backend phỏng vấn cho vị trí mid-level tại một công ty logistics. Cô ấy được hỏi vì sao một scheduled job đôi khi ghi dữ liệu không đầy đủ. Thay vì đoán, cô lần theo ranh giới transaction, nhận ra job đó gọi một phương thức transactional lên chính nó, và giải thích hành vi proxy khiến lệnh gọi đó bị bỏ qua. Người phỏng vấn chuyển thẳng sang bàn về offer, vì câu trả lời cho thấy thói quen debug chứ không phải một định nghĩa học thuộc.
Bộ câu hỏi cho các ngôn ngữ và framework khác được tập hợp tại question banks.
Nên luyện tập thế nào, và trợ lý trực tiếp phù hợp ở đâu?
Hãy đọc log khởi động của chính service bạn một lần và có thể kể lại nó. Sau đó luyện nói thành tiếng, vì khoảng cách giữa việc biết một khái niệm và giải thích nó trong bốn mươi giây chính là điều quyết định các vòng phỏng vấn này. Một AI interviewer trên trang /mock-interview có thể hỏi những câu follow-up mà bạn sẽ không tự hỏi mình.
Trong một buổi phỏng vấn video nói trực tiếp, SubcueAI phiên âm câu hỏi của người phỏng vấn và hiển thị bên phía bạn một cấu trúc trả lời được gợi ý, trong overlay trên desktop ở macOS và Windows hoặc trong side panel của tiện ích mở rộng trình duyệt Chromium. Không có meeting bot nào tham gia cuộc gọi, và không có gì được chèn vào trang cuộc họp. Giới hạn trung thực là vòng coding: nếu nó chuyển sang một nền tảng bị giám sát màn hình hoặc có giám thị, hỗ trợ trực tiếp nằm ngoài phạm vi, và nếu bạn chia sẻ màn hình, mọi thứ trên đó đều hiển thị.
Câu hỏi thường gặp
Sự khác biệt giữa Spring và Spring Boot là gì?
Vì sao constructor injection được ưu tiên?
Vấn đề N cộng 1 là gì?
Những endpoint Actuator nào rủi ro khi công khai?
Câu hỏi Spring Boot cho vị trí senior đi sâu đến mức nào?
Câu hỏi liên quan
- Tôi nên chuẩn bị những câu hỏi phỏng vấn Databricks nào?
- Tôi nên chuẩn bị những câu hỏi phỏng vấn .NET nào?
- Tôi nên chuẩn bị những câu hỏi phỏng vấn kỹ sư chất lượng nào?
- Tôi nên dự kiến những câu hỏi nào trong phỏng vấn định lượng?
- Tôi nên chuẩn bị những câu hỏi phỏng vấn Snowflake nào?
- Tôi nên chuẩn bị cho những câu hỏi phỏng vấn giáo viên nào?