31++ Câu hỏi phỏng vấn Spring Boot #Hay gặp
Spring Boot là một trong những framework phát triển ứng dụng Java phổ biến hiện nay. Ứng tuyển vào các vị trí Java developer, bạn không thể bỏ qua các câu hỏi phỏng vấn Spring Boot và các kinh nghiệm phỏng vấn thuyết phục. Sẵn sàng cho mọi buổi phỏng vấn trong lĩnh vực phát triển ứng dụng web với ITNavi ngay!
Các câu hỏi phỏng vấn Spring Boot fresher, junior
Nhóm câu hỏi phỏng vấn Spring Boot này là cơ bản nhất, đề cập đến các khái niệm, thành phần, thuộc tính,... cũng như tính năng, vai trò của Spring Boot.
1. Thuật ngữ 'Spring Boot' là gì?
Spring Boot là một framework mã nguồn mở, cung cấp Rapid Application Development, giúp xây dựng dễ dàng và nhanh chóng các ứng dụng Java.
2. Ưu điểm của Spring Boot là gì?
Ưu điểm nổi bật của Spring Boot đó là:
- Dễ sử dụng với các giải pháp mặc định
- Tự động cấu hình nhiều thành phần dựa trên thư viện phổ biến.
- Hệ sinh thái đa dạng gồm Spring Framework, Spring Data, Spring Security,...
- Hỗ trợ tích hợp nhiều công nghệ và database khác nhau như RESTful API, WebSocket, NoSQL databases,...
- Dễ kiểm thử.
- Tích hợp DevOps tốt.
- …
3. Làm cách nào để thay đổi HTTP Tomcat port?
Để thay đổi cổng HTTP Tomcat cần thay đổi thuộc tính HTTP mặc định trong tệp application.properties.
4. Bạn hãy nêu các tính năng khi sử dụng Spring Boot
Các tính năng khi sử dụng Spring Boot là:
- Starter dependency
- Auto-configuration
- Spring initializer
5. Giải thích các giai đoạn khác nhau của mô hình RAD
Hãy lưu ý: Đây là một trong những câu hỏi phỏng vấn Spring Boot thường xuyên được nhà tuyển dụng hỏi.
Các giai đoạn khác nhau của mô hình RAD (Rapid Application Development) là:
- Phân tích mô hình kinh doanh: Phân tích dựa trên luồng thông tin và phân phối giữa các kênh kinh doanh, sản phẩm.
- Lập mô hình dữ liệu: Thông tin đã thu thập sẽ được thực hiện mô hình hóa dữ liệu, thiết kế giao diện người dùng, thiết kế ứng dụng.
- Tạo ứng dụng: Sử dụng các công cụ và kỹ thuật như mô hình hóa dữ liệu, lập trình, kiểm thử để xây dựng nguyên mẫu của ứng dụng.
- Kiểm thử: Dùng các kỹ thuật kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử nguyên mẫu.
- Cài đặt và triển khai ứng dụng.
6. Spring Boot giúp kết nối nguồn data như thế nào?
Spring Boot hỗ trợ kết nối nguồn dữ liệu thông qua các starter POMs như MySQL, PostgreSQL, Oracle, MongoDB, Redis,... và các công cụ như Spring Data JPA, Spring JDBC. Spring Boot còn hỗ trợ kết nối nguồn dữ liệu qua cấu hình với file application.properties hoặc application.yml.
7. Các thành phần quan trọng của Spring Boot
- Spring Boot Starter
- Spring Boot autoconfiguration
- Spring Boot Actuator
- Spring Boot CLI
8. Quy trình để chạy ứng dụng Spring Boot trên port tùy chỉnh là gì?
Để chạy ứng dụng Spring Boot, cần đặt thuộc tính server.port trong application.properties. Ví dụ: server.port=8050
9. Bạn có thể dùng Spring Boot với các ứng dụng không sử dụng Spring không?
Có. Chúng ta có thể sử dụng các starter POMs mà không cần dùng đến các thư viện khác.
10. Tên file cấu hình có thể dùng được trong Spring Boot là gì?
Tệp cấu hình được sử dụng trong các dự án Spring Boot được gọi là application.properties hoặc application.yml. Đây là các file cấu hình mặc định và được Spring Boot tự động tìm kiếm để nạp thiết lập cho ứng dụng.
Ví dụ về application.yml*
11. DevTools Spring Boot là gì?
Spring Boot DevTools là một plugin được tích hợp sẵn trong Spring Boot, giúp tăng trải nghiệm phát triển ứng dụng Spring Boot bằng cách cung cấp các tính năng:
- Tự khởi động lại ứng dụng khi bị thay đổi source code mà không cần khởi động lại máy chủ.
- LiveReLoad: Cho phép xem các thay đổi của tệp CSS và JavaScript mà không cần tải lại trang.
- Remote debugging
- Tích hợp các tính năng phát triển khác như Spring Initializr và Spring Boot CLI.
12. Spring Boot có những tính năng quan trọng nào?
Các tính năng của Spring Boot là:
- Web Development
- Spring Application
- Application occasions and listeners
- Admin highlights
- Hỗ trợ YAML
- Cấu hình Type-safe
- Cấu hình Externalize
- Properties Files
- Đăng nhập và bảo mật
13. Thuộc tính (properties) được xác định như thế nào và ở đâu?
Bạn có thể xác định các thuộc tính (properties) trong tệp application.properties tồn tại trong classpath.
Ví dụ: cấu hình Bean DataSource mặc định
database.host=localhost
14. Làm thế nào để kích hoạt hỗ trợ HTTP/2 trong Spring Boot?
Có thể kích hoạt hỗ trợ HTTP/2 bằng cách dùng:
server.http2.enabled configuration property.
15. Spring-boot-starter-parent là gì?
Spring-boot-starter-parent là một starter project giúp việc quản lý phần phụ thuộc Gradle hoặc Maven trở nên dễ dàng bằng cách thêm các tệp vào đường dẫn lớp của bạn. Spring-boot-starter-parent bao gồm các dependency để chạy một ứng dụng Spring Boot là Spring Boot Auto-configuration, Spring MVC, Spring Data JPA, Lombok,...
16. JPA và Hibernate khác nhau thế nào?
- JPA là một API tiêu chuẩn, có thể dùng ở bất cứ nền tảng nào và tập trung vào khả năng tái sử dụng.
- Hibernate chỉ là triển khai của JPA, chỉ dùng được ở nền tảng Java và tập trung vào hiệu suất.
17. Lệnh để chạy ứng dụng Spring Boot port tùy chỉnh là gì?
Trong application.properties, chèn thêm thuộc tính sau:
server.port = 8181
18. Tệp thuộc tính trong Spring Boot là gì? Để truy cập một giá trị được xác định trong ứng dụng thì cần làm gì?
Tệp thuộc tính trong Spring Boot là tệp văn bản có định dạng key-value, dùng để lưu trữ thông tin cấu hình của ứng dụng. Các tệp này thường có định dạng thông qua Java Properties (.properties) hoặc YAML (.yml).
Để truy cập vào một giá trị được xác định trong ứng dụng thì dùng chú thích @Value. Cụ thể:
@Value("${custom.value}")
private String customVal;
19. Làm thế nào để kết nối Spring Boot với cơ sở dữ liệu bằng JPA?
Spring Boot hỗ trợ khởi động spring-boot-data-JPA, giúp kết nối ứng dụng spring với relational database.
20. Chú thích @RestController trong Spring Boot là gì?
Chú thích @RestController là một annotation kết hợp của hai chú thích @ResponseBody và @Controller, được dùng để chỉ định một class là một controller REST. Trong đó, controller REST là các lớp xử lý yêu cầu HTTP và tạo ra các API RESTful..
Bạn cũng có thể nhập gói org.springframework.web.bind.annotation trong tệp của mình.
Ví dụ:
Câu hỏi phỏng vấn Spring Boot nâng cao
Nhóm câu hỏi phỏng vấn Spring Boot này phù hợp để đánh giá các ứng viên trình độ middle, senior trên 3 năm kinh nghiệm làm việc liên quan đến Spring Boot, Java,...
1. Swagger2 trong Spring Boot là gì?
Swagger2 là một công cụ và framework được dùng trong Spring Boot để tạo và tài liệu hoá các API RESTful. Swagger2 cũng cung cấp cho người dùng interface để truy cập dịch vụ web RESTful thông qua trình duyệt.
2. Có thể thay thế hoặc ghi đè Embedded Tomcat server trong Spring Boot không?
Có, có thể thay thế Embedded Tomcat server bằng cách tạo máy chủ web tùy chỉnh hoặc sử dụng các starter dependency. Để làm được điều đó, bạn có thể sử dụng spring-boot-starter-jetty hoặc làm dependency tùy theo nhu cầu của bạn.
3. Bạn có thể tắt default web server trong ứng dụng Spring Boot không?
Có, có thể tắt máy chủ web mặc định bằng cách sử dụng application.properties để định cấu hình loại ứng dụng web.
4. Làm cách nào để thêm Filter vào một ứng dụng?
Có ba cách để thêm bộ lọc vào ứng dụng Spring Boot:
- Triển khai Filter interface.
- Dùng FilterRegistrationBean.
- Sử dụng MVC controller.
5. @pathVariable là gì?
Chú thích @PathVariable là một annotation trong Spring Boot dùng để trích xuất thông tin trực tiếp từ URI vào các tham số của phương thức controller.
6. RequestMapping và GetMapping khác nhau ở điểm gì?
- RequestMapping có thể dùng với GET, POST, PUT và nhiều phương thức yêu cầu khác bằng cách sử dụng thuộc tính phương thức trên annotation.
- GetMapping chỉ là một phần mở rộng của requestMapping, giúp cải thiện sự rõ ràng trong các yêu cầu.
7. Các để tạo một dự án Spring Boot bằng Maven
Sử dụng một số phương pháp sau để tạo dự án:
- Spring Initializr
- Spring Boot CLI
- Spring Starter Project Wizard
8. Hot-swapping trong Spring Boot nghĩa là gì?
Hot-swapping là một cách để tải lại các thay đổi mà không cần khởi động lại máy chủ Tomcat hoặc Jetty. Eclipse và nhiều IDE khác hỗ trợ bytecode Hot-swapping. Hot-swapping cho phép bạn thay đổi source code và xem kết quả ngay lập tức mà không cần tắt hay khởi động lại server.
9. Lập trình hướng khía cạnh (AOP) là gì?
Lập trình hướng khía cạnh (Aspect-Oriented Programming) bổ sung cho lập trình hướng đối tượng (OOP) nhằm mục đích tăng tính mô-đun. AOP chia logic chương trình thành nhiều phần khác nhau, được gọi là mối quan tâm (concerns).
10. Làm cách nào để kích hoạt tính năng logging trong Spring Boot?
Để kích hoạt tính năng debug logging, có thể chỉ định –debug trong khi khởi động ứng dụng từ dấu nhắc lệnh (command prompt).
11. Thẻ có tác dụng gì?
Thẻ được sử dụng để ghi vào bộ Java bằng cách sử dụng XML.
12. Làm cách nào bạn có thể thiết lập active profile trong Spring Boot?
Thực hiện thiết lập active profile theo các cách dưới đây:
- Chuyển profile này làm đối số khi bạn khởi chạy ứng dụng Spring Boot.
- Đặt kích hoạt active profile trong tệp application.properties.
Câu hỏi phỏng vấn Java Spring Boot phổ biến
Dưới đây là một số câu hỏi phỏng vấn Spring Boot Java được nhà tuyển dụng lựa chọn nhiều nhất. Ngoài việc tham khảo câu trả lời dưới đây, bạn hãy thêm vào các ví dụ thực tế trong dự án bạn đã từng làm để tăng tính thuyết phục.
1. Các bước để triển khai ứng dụng trên máy ảo (virtual machine)
Dưới đây là các bước để thực hiện triển khai ứng dụng trên virtual machine:
- Cài đặt Java.
- Cài đặt Application Server.
- Triển khai application war file.
2. Bạn hãy liệt kê một số Spring Boot Starters
Các bộ Spring Boot Starters gồm có:
- Security
- Parent
- Web
- Thymeleaf
- Freemarker
Câu hỏi tình huống phỏng vấn Spring Boot
Các câu hỏi tình huống cũng là một phần đáng để lưu ý trong bộ câu hỏi phỏng vấn Spring Boot. Nhóm câu hỏi này có thể không phân chia trình độ và tập trung đánh giá về cách giải quyết và tư duy xử lý tình huống của ứng viên. Bạn có thể tham khảo một số câu hỏi tình huống dưới đây:
1. Cách xử lý ngoại lệ (exception) trong Spring Boot
Spring Boot cung cấp một cách rất hữu ích để xử lý các ngoại lệ bằng cách sử dụng @ControllerAdvice annotation.
2. Liệt kê các lợi ích của việc sử dụng phương thức JavaConfig
Dưới đây là một số lợi ích của phương pháp JavaConfig:
- Người dùng có thể tận dụng lợi ích của cấu hình hướng đối tượng (object-oriented configuration).
- Cấu hình Spring Boot cải thiện hiệu quả của ứng dụng web-based bằng cách loại bỏ cấu hình XML phức tạp.
Một số câu hỏi phỏng vấn Spring Boot khác bạn cũng có thể gặp trong buổi phỏng vấn như:
- Bạn đã từng gặp khó khăn với giai đoạn nào của RAD model?
- Bạn đã từng làm việc với Spring MVC chưa?
- Ưu điểm của microservice là gì?
- Apache Kafka của LinkedIn có lợi ích gì?
- …
Kinh nghiệm phỏng vấn Spring Boot ‘mượt’ nhất
Để vượt qua “cuộc đấu trí” phỏng vấn Spring Boot này, ứng viên không chỉ cần có kiến thức chuyên môn vững chắc, mà kỹ năng, thái độ, tinh thần cũng là yếu tố quyết định khả năng được offer nhận việc hay không. Tham khảo kinh nghiệm “thoát pressing” tốt nhất đến từ vị trí của các chuyên gia nhân sự từ ITNavi để trả lời các câu hỏi phỏng vấn Spring Boot mượt nhất.
- Hãy tạo ấn tượng tốt bằng nụ cười tự tin và tâm lý thoải mái.
- Chú ý đến ngôn ngữ cơ thể, không nên ngồi rung chân, vuốt tóc, mân mê đồ vật hay đảo mắt không tập trung.
- Nói đến ưu điểm một cách khiêm tốn, không “nổ”.
- Khéo léo khi trả lời các câu hỏi về khuyết điểm, cần thể hiện tinh thần cầu thị, ham học hỏi.
- Trả lời đúng trọng tâm câu hỏi chuyên môn Spring Boot và cả câu hỏi kỹ năng khác.
- Với các câu hỏi thực hành, nên chú ý vào “clean code” và có thể giải thích thêm về cách xử lý, giải quyết vấn đề mà bài toán đặt ra.
- Đặt câu hỏi cho nhà tuyển dụng một cách tinh tế, khéo léo, phù hợp với vị trí ứng tuyển.
- Chuẩn bị sổ ghi chép cá nhân.
- …
Lưu ý cần tránh khi tham gia phỏng vấn Java Spring Boot
“Nhân vô thập toàn”, cũng sẽ có lúc bạn mắc phải một số lỗi khi tham gia phỏng vấn. Nhưng cần biết sai biết sửa, đó mới là chuyên nghiệp và trách nhiệm. Dưới đây là một vài lưu ý tuyệt đối cần tránh và cải thiện khi chuẩn bị tham gia buổi phỏng vấn Spring Boot:
- Không nắm được các khái niệm cơ bản về Spring Boot, kỹ thuật phát triển Spring Boot, kiến thức về CSDL,...
- Bỏ qua kiến thức về tính năng của Spring Boot như tự động cấu hình, Actuator, Spring data JPA, triển khai bảo mật,...
- Không thể trình bày hoặc giới thiệu về các dự án đã từng tham gia hoặc thực hiện.
- Kỹ năng giao tiếp kém, quá bối rối làm việc truyền đạt trở nên khó hiểu, khó nắm được nội dung.
- Thái độ cợt nhả, bề trên hoặc hời hợt.
- …
Những biểu hiện trên cho thấy ứng viên không có tinh thần hợp tác và không thực sự để tâm chuẩn bị cho buổi phỏng vấn. Vậy nên, các nhà tuyển dụng thường không đánh giá cao các ứng viên này.
Chuẩn bị kỹ về mọi mặt chính là cho nhà tuyển dụng thấy được thiện chí, tinh thần trách nhiệm và mong muốn thực sự được đảm nhận công việc liên quan đến Spring Boot. Và cách bạn chuẩn bị với câu hỏi phỏng vấn Spring Boot cùng kinh nghiệm trả lời phỏng vấn từ ITNavi chính là đang khẳng định bản thân chắc chắn sẽ đối mặt với buổi phỏng vấn một cách tự tin, chuyên nghiệp nhất. Chúc bạn có một buổi phỏng vấn như ý!