70 câu hỏi & câu trả lời phỏng vấn về khởi động mùa xuân hàng đầu

Sau đây là những câu hỏi thường gặp trong các cuộc phỏng vấn dành cho người mới bắt đầu cũng như các Nhà phát triển phần mềm Java có kinh nghiệm.

tải PDF

1) Giải thích thuật ngữ 'Spring Boot'.

Nó là một mô-đun Spring cung cấp Khung phát triển ứng dụng nhanh chóng cho Spring. Mô-đun Spring được sử dụng để tạo một ứng dụng dựa trên Spring framework yêu cầu cấu hình một vài tệp Spring.

2) Đề cập đến một số ưu điểm của Spring Boot

Dưới đây là một số ưu điểm chính của việc sử dụng spring-boot:

  • Giúp bạn tạo một ứng dụng độc lập, có thể bắt đầu bằng java.jar.
  • Nó cung cấp cấu hình POM được xác định chính xác cho Maven.
  • Cho phép bạn nhúng Undertow, Tomcat hoặc Jetty trực tiếp.
  • Giúp bạn tự động cấu hình lò xo bất cứ khi nào có thể.

3) Làm thế nào để tạo một ứng dụng Spring Boot bằng Spring Initializer?

Nó là một công cụ web được cung cấp bởi Spring trên trang web chính thức của nó. Tuy nhiên, bạn cũng có thể tạo dự án Spring Boot bằng cách nhập chi tiết dự án.

4) Kể tên các tính năng của việc sử dụng Spring Boot

Các tính năng của việc sử dụng Spring Boot là:

  • Sự phụ thuộc của người mới bắt đầu
  • Tự động cấu hình
  • Bộ khởi tạo mùa xuân

5) Giải thích các pha khác nhau của mô hình RAD.

Đây là một cuộc phỏng vấn xin việc thường gặp. Các giai đoạn khác nhau của chế độ RAD là:

  • Mô hình kinh doanh: Dựa trên luồng thông tin và sự phân phối giữa các kênh kinh doanh khác nhau, sản phẩm được thiết kế.
  • Mô hình hóa dữ liệu: Thông tin thu thập được từ mô hình kinh doanh được tinh chỉnh thành một tập hợp các đối tượng dữ liệu có ý nghĩa đối với doanh nghiệp.
  • Tạo ứng dụng: Các công cụ tự động được sử dụng để xây dựng phần mềm, để chuyển đổi các mô hình quy trình và dữ liệu thành các nguyên mẫu.

6) Mô hình RAD là gì?

RAD hoặc quy trình Phát triển ứng dụng nhanh là việc áp dụng mô hình thác nước; nó nhắm mục tiêu phát triển phần mềm trong một thời gian ngắn. RAD tuân theo lặp đi lặp lại

Mô hình SDLC RAD có các giai đoạn sau:

  • Mô hình kinh doanh
  • Mô hình hóa dữ liệu
  • Mô hình hóa quy trình
  • Tạo ứng dụng
  • Thử nghiệm và Doanh thu

7) Các lệnh để chạy và dừng tệp jar thực thi Spring Boot là gì?

Bạn cần mở lệnh cmd hoặc shell window và sử dụng

java -jar

Ví dụ

$ java -jar myproject-0.0.1-SNAPSHOT.jar

Để ngừng sử dụng ctrl + C

8) Làm cách nào bạn có thể thay đổi phiên bản JDK trong Spring Boot?

Để thay đổi phiên bản JDK trong Spring Boot, bạn có thể ghi đè nó bằng cách thêm java. thẻ thuộc tính phiên bản như đã cho:

 1.8 

9) Quá trình bạn cần làm theo để chạy ứng dụng Spring Boot trên cổng tùy chỉnh là gì?

Để chạy ứng dụng Spring Boot, bạn cần đặt thuộc tính server.port trong application.properties. Ví dụ: server.port = 8050

10) Bộ khởi động Spring Boot là gì? Nó hữu ích như thế nào?

Spring Boot có nhiều phần khởi động. Chúng là một tập hợp các bộ mô tả phụ thuộc thuận tiện. Starter cho phép bạn bao gồm các bộ mô tả này trong pom.xml của mình.

Ví dụ: Nếu bạn muốn làm việc với Spring MVC, bạn có thể bao gồm spring – boot – starter – web làm phần phụ thuộc trong pom.xml.

11) Bạn có thể sử dụng Spring Boot với các ứng dụng không sử dụng Spring không?

Không, không thể thực hiện được vì Spring Boot chỉ giới hạn ở ứng dụng Spring.

12) Tên của tệp cấu hình mà bạn có thể sử dụng 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. Đây là một tệp quan trọng cho phép bạn ghi đè các cấu hình mặc định của mình.

13) DevTools trong Spring Boot là gì?

Spring Boot DevTools giúp bạn tăng năng suất của nhà phát triển. Vì vậy, bạn không cần phải triển khai lại ứng dụng của mình mỗi khi bạn thực hiện các thay đổi. Nó cho phép nhà phát triển tải lại các thay đổi mà không cần khởi động lại máy chủ.

14) Các tính năng quan trọng của Reactjs là gì?

Các tính năng quan trọng của Reactjs là:

  • Phát triển web
  • Ứng dụng mùa xuân
  • Các dịp ứng dụng và người nghe
  • Điểm nổi bật của quản trị viên
  • Hỗ trợ YAML
  • Cấu hình loại an toàn
  • Cấu hình bên ngoài
  • Tệp thuộc tính
  • Ghi nhật ký và Bảo mật

15) Các thành phần thiết yếu của Spring Boot là gì

Các thành phần quan trọng của Spring Boot là:

  • Khởi động mùa xuân
  • Tự động cấu hình Spring Boot
  • Bộ truyền động khởi động mùa xuân
  • Spring Boot CLI

16) Các thuộc tính được định nghĩa như thế nào? Ở đâu?

Bạn có thể xác định các thuộc tính 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

17) Spring-boot-starter-parent là gì?

Đây là một công cụ khởi động đặc biệt giúp quản lý sự phụ thuộc của Gradle hoặc Maven dễ dàng bằng cách thêm các lọ vào classpath của bạn.

18) Làm thế nào để kích hoạt hỗ trợ HTTP / 2 trong Spring Boot?

Người dùng có thể bật hỗ trợ HTTP / 2 bằng cách sử dụng

server.http2.enabled configuration property. 

19) Bộ truyền động khởi động mùa xuân là gì?

Spring Boot Actuator cho phép bạn theo dõi và quản lý ứng dụng của mình khi bạn muốn thúc đẩy nó cho quá trình sản xuất. Nó giúp bạn kiểm soát ứng dụng của mình bằng cách sử dụng các điểm cuối HTTP.

20) Lệnh chạy ứng dụng Spring Boot đến cổng tùy chỉnh là gì?

Trong application.properties, hãy thêm thuộc tính sau.

server.port = 8181

21) Làm thế nào bạn có thể truy cập một giá trị được xác định trong ứng dụng? Tập tin thuộc tính trong Spring Boot là gì?

Sử dụng chú thích @Value để truy cập các thuộc tính được xác định trong tệp ứng dụng - thuộc tính.

 @Value('${custom.value}') private String customVal; 

22) Sự khác biệt chính giữa Spring và Spring Boot là gì?

Spring là một khung phát triển ứng dụng web dựa trên Java. Mặt khác, Spring Boot là một phần mở rộng của khuôn khổ mùa xuân đã loại bỏ cấu hình bảng soạn sẵn cần thiết để thiết lập một ứng dụng Spring.

23) Giải thích quản trị Spring Boot

Quản trị viên Spring Boot là một dự án cộng đồng giúp bạn quản lý và giám sát các ứng dụng Spring Boot của mình.

24) Làm thế nào bạn có thể 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 bạn kết nối ứng dụng spring với cơ sở dữ liệu quan hệ.

25) Giải thích chú thích @RestController trong Spring Boot?

Chú thích @RestController giúp bạn thêm chú thích @ResponseBody và @Controller vào lớp.

Bạn cũng có thể nhập gói org.springframework.web.bind.annotation trong tệp của mình.

26) Định nghĩa thuật ngữ Spring Initializer

Spring khởi tạo là một ứng dụng web có thể tạo cấu trúc dự án ban đầu cho bạn.

27) Giải thích Spring CLI

Spring CLI được sử dụng để viết trong ứng dụng Groovy Spring Boot, giúp bạn viết mã ngắn gọn.

28) Bạn có thể xác định các thuộc tính trong ứng dụng Spring Boot ở đâu?

Bạn có thể xác định các thuộc tính của Spring Boot thành một tệp có tên application.properties. Nó giúp bạn tạo tệp này theo cách thủ công hoặc bạn có thể sử dụng Spring Initializer để tạo tệp này.

29) Các vùng chứa nhúng được Spring hỗ trợ là gì

Spring Boot hỗ trợ ba vùng chứa nhúng chính:

1) Tomcat

2) Cầu tàu

3) Undertow.

Theo mặc định, nó sử dụng Tomcat làm vùng chứa nhúng.

30) Giải thích thymeleaf trong Spring Boot

Thymelaf là một công cụ mẫu Java phía máy chủ cho một ứng dụng web. Nó giúp bạn đưa các mẫu tự nhiên thanh lịch vào ứng dụng web của mình.

31) Các thuộc tính Spring Boot là gì?

Spring Boot cung cấp các thuộc tính khác nhau có thể được chỉ định bên trong tệp application.properties của dự án của chúng tôi. Nó giúp bạn đặt các giá trị như số cổng máy chủ, cấu hình kết nối cơ sở dữ liệu, v.v.

32) Sự khác biệt chính giữa JPA và Hibernate là gì?

Sự khác biệt chính giữa cả hai là JPA là một đặc tả / Giao diện, trong khi Hibernate chỉ là các triển khai JPA.

33) Ngắt bộ truyền động là gì?

Tắt máy là một điểm cuối giúp ứng dụng được tắt đúng cách. Tính năng này không được bật theo mặc định.

Tuy nhiên, bạn có thể sử dụng nó bằng cách đặt lệnh: management.endpoint.shutdown.enabled = true trong tệp application.properties của bạn.

34) Có thể thay thế hoặc ghi đè máy chủ Tomcat nhúng trong Spring Boot không?

Có, có thể thay thế Embedded Tomcat bằng bất kỳ máy chủ nào khác bằng cách sử dụng các phần phụ thuộc dành cho người mới bắt đầu. Để làm được điều đó, bạn có thể sử dụng spring-boot-starter-jetty hoặc như một phụ kiện tùy theo nhu cầu của bạn.

35) Bạn có thể tắt máy chủ web mặc định trong ứng dụng Spring Boot không?

Có, chúng tôi 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.

36) Làm cách nào để bạn Thêm, Lọc vào một ứng dụng? Có ba phương pháp để thêm bộ lọc vào ứng dụng Spring Boot:

  • Bằng cách triển khai giao diện Bộ lọc.
  • Sử dụng FilterRegistrationBean.
  • Sử dụng bộ điều khiển MVC.

37) Dự án khởi động mùa xuân là gì?

Starters trong Spring Boot là một tập hợp các bộ mô tả tiện lợi được bao gồm trong các ứng dụng Spring Boot. Nó đi kèm với nhiều công nghệ liên quan đến Spring giúp toàn bộ quá trình phát triển ứng dụng dễ dàng hơn nhiều.

38) @pathVariable là gì?

Chú thích @PathVariable giúp bạn trích xuất thông tin trực tiếp từ URI.

39) Swagger2 là gì?

Swagger được sử dụng để mô tả cấu trúc của các API. Swagger 2 là một dịch vụ mã nguồn mở được cung cấp trong Spring Boot, giúp máy tìm ra cấu trúc của các API như dịch vụ Web RESTful dễ dàng hơn.

40) Các môi trường khác nhau để phát triển ứng dụng doanh nghiệp là gì?

  • Dev
  • QA
  • Sân khấu
  • Sản xuất

41) Sự khác biệt chính giữa RequestMapping và GetMapping là gì?

RequestMapping có thể được sử 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 chú thích. Trong khi GetMapping chỉ là một phần mở rộng của RequestMapping, giúp bạn cải thiện độ rõ ràng của các yêu cầu.

42) Làm thế nào bạn có thể xác định các thuộc tính trong Spring Boot?

Bạn có thể xác định các thuộc tính trong Spring Boot với sự trợ giúp của tệp application.properties tồn tại trong classpath của ứng dụng như sau.

43) Làm thế nào để tạo một dự án Spring Boot bằng Maven?

Sử dụng bất kỳ phương pháp nào sau đây để tạo một dự án.

  • Spring Initializr
  • Spring Boot CLI
  • Spring Starter Project Wizard

44) Việc sử dụng các cấu hình trong Spring Boot là gì?

Cấu hình được sử dụng để tách các phần khác nhau của cấu hình ứng dụng mùa xuân của bạn và làm cho nó chỉ khả dụng trong một số môi trường nhất định.

45) Làm thế nào để thay đổi cổng HTTP tomcat?

Để thay đổi cổng HTTP tomcat, bạn phải thay đổi thuộc tính HTTP mặc định trong tệp application.properties.

46) LiveReload trong Spring Boot là gì?

LiveReload là một mô-đun spring-boot-devtools bao gồm máy chủ LiveReload để kích hoạt làm mới trình duyệt khi tài nguyên bị thay đổi. Phần mở rộng máy chủ LiveReload có sẵn phần mềm miễn phí cho Firefox, Chrome và Safari.

47) Những lợi ích chính của cấu hình bên ngoài mùa xuân là gì?

Cấu hình bên ngoài giúp làm việc với cùng một mã trong các môi trường khác nhau. Các nhà phát triển có thể sử dụng tệp YAML, tệp thuộc tính, đối số dòng lệnh và biến môi trường để cấu hình bên ngoài.

48) Ý bạn là gì khi hoán đổi nóng trong Spring Boot?

Đó 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ợ hoán đổi nóng bytecode. Nếu bạn thực hiện bất kỳ thay đổi nào không ảnh hưởng đến chữ ký của phương thức, nó sẽ tải lại mà không có tác dụng phụ.

49) Giải thích cấu hình tự động trong Spring Boot.

Tự động cấu hình được sử dụng để cấu hình ứng dụng Spring tự động dựa trên sự phụ thuộc của tham số classpath. Nó làm cho sự phát triển nhanh hơn và dễ dàng hơn.

50) Ý nghĩa của Lập trình hướng theo khía cạnh (AOP) là gì?

Lập trình hướng đối tượng bổ sung Lập trình hướng đối tượng 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.

51) Làm cách nào để kích hoạt tính năng đăng nhập Spring Boot?

Để bật ghi nhật ký gỡ lỗi, bạn có thể chỉ định --debug trong khi khởi động ứng dụng từ dấu nhắc lệnh.

52) Giải thích ghi đè các thuộc tính mặc định trong ứng dụng Spring Boot.

Spring Boot có rất nhiều thuộc tính có thể dễ dàng bị ghi đè bằng cách chỉ định chúng trong application.properties.

53) Giải thích Docker trong Spring Boot.

Nó là một công cụ được thiết kế để tạo, triển khai và chạy một dự án bằng cách sử dụng các thùng chứa.

54) Xác định ngăn xếp ELK.

ELK Stack được tạo ra từ ba sản phẩm mã nguồn mở: 1) Elasticsearch, 2) Logstash và 3) Kibana.

  • Elasticsearch: Đây là một cơ sở dữ liệu NoSQL dựa trên công cụ tìm kiếm mã nguồn mở có tên là Lucene.
  • Logstash: Nó là một công cụ đường ống xử lý dữ liệu chấp nhận đầu vào từ các nguồn, thực hiện các phép biến đổi khác nhau và xuất dữ liệu sang các mục tiêu.
  • Kibana: Kibana giúp người dùng trực quan hóa dữ liệu bằng đồ thị và biểu đồ trong Elasticsearch.

55) Cách xử lý ngoại lệ 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 chú thích @ControllerAdvice.

56) Giải thích bộ nhớ đệm.

Bộ nhớ đệm là bộ nhớ lưu trữ tạm thời dữ liệu được truy cập thường xuyên mà nếu lấy hoặc tính toán thì rất tốn kém.

57) Tấn công Cross-Site Request Forgery là gì?

Cross-Site Request Forgery Tấn công giả mạo hay còn gọi là tấn công một cú nhấp chuột là một cuộc tấn công buộc người dùng khác thực hiện các lệnh độc hại trên ứng dụng. Cuộc tấn công CSRF nhắm mục tiêu cụ thể vào các yêu cầu thay đổi trạng thái.

58) Xác định công cụ miễn phí apache.

Freemarker là một mẫu dựa trên Java được sử dụng để tạo văn bản thuần túy, email, tệp HTML, v.v.

59) Lô xuân nghĩa là gì?

Spring Boot Batch cung cấp khả năng tái sử dụng mã rất quan trọng khi làm việc với số lượng lớn bản ghi, bao gồm quản lý giao dịch, ghi nhật ký, bỏ qua, thống kê xử lý công việc và khởi động lại công việc.

60) Giải thích Apache Kafka.

Apache Kafka là một nền tảng nhắn tin mã nguồn mở. LinkedIn phát triển nó. Apache Kafka cho phép người dùng xây dựng các ứng dụng phân tán và xử lý các nguồn cấp dữ liệu thời gian thực. Kafka thích hợp cho cả nhắn tin ngoại tuyến và trực tuyến.

61) Giải thích CORS trong Spring Boot?

CORS là viết tắt của Cross-Origin Resource Sharing là một cơ chế được thực hiện bởi các trình duyệt và giúp người dùng ủy quyền các yêu cầu giữa các miền. Cơ chế này đóng vai trò là một giải pháp thay thế cho các loại hack kém an toàn và kém mạnh mẽ hơn của các loại IFrame hoặc JSONP.

62) Giải thích các kiểu tiêm phụ thuộc khác nhau.

Có hai kiểu tiêm phụ thuộc trong Spring Boot. Chúng như sau:

  • Chèn phụ thuộc dựa trên cấu trúc: Nó là một kỹ thuật trong đó một đối tượng lớp cung cấp sự phụ thuộc của một đối tượng khác.
  • Tiêm phụ thuộc dựa trên setter: Nó là một tiêm phụ thuộc trong đó khung công tác tiêm các giá trị nguyên thủy và dựa trên chuỗi bằng cách sử dụng phương thức setter.

63) Ưu điểm của dịch vụ vi mô là gì?

Sau đây là những ưu điểm chính của dịch vụ vi mô:

  • Nó làm cho sự phát triển nhanh chóng và dễ dàng.
  • Tương thích với tất cả các thùng chứa.
  • Giảm thời gian sản xuất.
  • Đây là một mô hình nhẹ hỗ trợ một ứng dụng kinh doanh lớn.

64) Gói mặc định trong Spring Boot là gì?

Một lớp không có bất kỳ khai báo gói nào được coi là một gói mặc định.

65) Giải thích sự khác biệt giữa một thùng chứa nhúng và một WAR.

Sự khác biệt chính giữa hai điều này là:

Vùng chứa được nhúng giúp bạn chạy ứng dụng Spring Boot dưới dạng JAR từ dấu nhắc lệnh mà không cần thiết lập bất kỳ máy chủ web nào, trong khi để chạy WAR, trước tiên bạn cần thiết lập Tomcat.

66) Giải thích Spring MVC.

Nó là một khung ứng dụng web truyền thống giúp bạn xây dựng một ứng dụng web. Khuôn khổ này tương tự như khuôn khổ của Struts.

67) Việc sử dụng thẻ là gì?

Thẻ này được sử dụng để ghi vào tập hợp java bằng XML.

68) Bạn có ý nghĩa gì về khía cạnh?

Nó là một tập hợp các API cung cấp các yêu cầu xuyên suốt.

69) Điểm tham gia trong Spring Boot là gì?

Nó là một điểm thực thi chương trình giống như việc xử lý một ngoại lệ hoặc thực thi một phương thức. Trong AOP, một điểm nối được gọi là một phương thức thực thi.

70) Làm cách nào bạn có thể thiết lập cấu hình hoạt động trong Spring Boot?

Làm theo các phương pháp sau để đặt cấu hình hoạt động trong Spring Boot.

  • Chuyển hồ sơ này làm đối số khi bạn khởi chạy ứng dụng Spring Boot.
  • Đặt kích hoạt cấu hình hoạt động trong tệp application.properties.

71) Có thể loại trừ gói mà không sử dụng bộ lọc basePackages không? Thế nào?

Đúng. Có thể loại trừ gói mà không cần sử dụng bộ lọc basePackages bằng cách chỉ cần sử dụng thuộc tính loại trừ trong khi sử dụng chú thích @SpringBootApplication.

72) Liệt kê những lợi ích của việc sử dụng phương thức JavaConfig.

Sau đây là những lợi ích của phương thức 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.
  • Cấu hình Spring Boot cải thiện hiệu quả của ứng dụng dựa trên web bằng cách loại bỏ cấu hình XML phức tạp.

73) Giải thích các bước để triển khai một ứng dụng trên máy ảo.

Dưới đây là các bước để triển khai ứng dụng trên máy ảo.

  • Cài đặt Java.
  • Cài đặt Máy chủ Ứng dụng.
  • Triển khai hồ sơ chiến tranh ứng dụng.

74) Liệt kê một số Khởi động Spring Boot.

Các trình khởi động Spring Boot khác nhau như sau:

  • Bảo vệ
  • Cha mẹ
  • Web
  • Lá húng tây
  • Người bán hàng hiệu