Câu trả lời:
@Controller
, trong đó bạn triển khai các phương thức bạn có thể truy cập bằng các yêu cầu HTTP khác nhau. Nó có một tương đương@RestController
để thực hiện các API dựa trên REST.Vì vậy, Spring MVC là một khung được sử dụng trong các ứng dụng web và Spring Boot là trình khởi tạo dự án sẵn sàng sản xuất dựa trên Spring . Bạn có thể thấy hữu ích khi truy cập wiki thẻ Spring MVC cũng như wiki thẻ Spring Boot trong SO.
Spring Boot
sau đó hoàn thành chức năng web với Spring MVC
?
Spring MVC và Spring Boot được mô tả tốt trong các câu trả lời khác, và vì vậy mà không lặp lại điều đó, hãy để tôi chuyển thẳng đến chi tiết cụ thể. Spring Boot và Spring MVC không thể so sánh hoặc loại trừ lẫn nhau. Nếu bạn muốn phát triển ứng dụng web bằng Spring, dù sao bạn cũng sẽ sử dụng Spring MVC . Câu hỏi của bạn sau đó trở thành có nên sử dụng Spring Boot hay không.
Để phát triển các ứng dụng Spring phổ biến hoặc bắt đầu học Spring, tôi nghĩ rằng nên sử dụng Spring Boot . Nó làm giảm đáng kể công việc, sẵn sàng sản xuất và nhanh chóng được áp dụng rộng rãi.
Tôi đã thấy đôi khi những người mới bắt đầu hỏi câu hỏi này bởi vì trong STS (Spring Tool Suite) có hai trình hướng dẫn: một để tạo dự án Spring Boot và một để tạo dự án Spring MVC. Vì vậy, đề xuất của tôi sẽ là tạo một dự án Spring Boot và chọn Web làm mô-đun trong đó.
Đây là một hình ảnh đại diện cho thấy sự khác biệt.
Vui lòng tham khảo liên kết này để biết thêm thông tin:
Trong thuật ngữ đơn giản, nó có thể được nêu là:
Spring boot = Spring MVC + Auto Configuration(Don't need to write spring.xml file for configurations) + Server(You can have embedded Tomcat, Netty, Jetty server).
Và Spring Boot là một khung công tác, do đó, bản dựng của nó được xem xét để phát triển nhanh, cần ít thời gian hơn cho cấu hình và có sự hỗ trợ cộng đồng rất tốt.
Spring MVC
là một dự án con của Spring Framework, nhắm mục tiêu thiết kế và phát triển các ứng dụng sử dụng mẫu MVC (Model-View-Controller). Spring MVC được thiết kế để tích hợp đầy đủ và hoàn toàn với Spring Framework và hầu hết các dự án phụ khác.
Spring Boot
có thể được hiểu khá rõ từ bài viết này của nhóm Spring Engineering. Nó được cho là có ý kiến, tức là nó chủ yếu ủng hộ một phong cách phát triển nhanh nhất định, nhưng nó được thiết kế đủ tốt để phù hợp với các ngoại lệ cho quy tắc, nếu bạn muốn. Nói tóm lại, đó là một quy ước về phương pháp cấu hình sẵn sàng hiểu nhu cầu của bạn để phá vỡ quy ước khi được bảo hành.
Đây là một số điểm chính phân biệt Spring, Spring MVC và Spring Boot:
Mùa xuân:
Mùa xuân MVC
Khởi động mùa xuân:
(Evolution như: Spring -> Spring MVC -> Spring Boot, Vì vậy, phiên bản mới hơn có khả năng tương thích với các tính năng của phiên bản cũ.) Lưu ý: Nó không chứa tất cả các điểm.
SpringBoot thực sự được cấu hình sẵn làm giảm cấu hình nồi hơi và cung cấp cách dễ nhất hoặc nhanh nhất để bắt đầu ứng dụng của bạn.
SpringBoot làm đau đầu cấu hình từ nhà phát triển đến chính bản thân họ chứ không phải Spring.
Hoàn toàn SpringBoot dựa trên khái niệm khung công tác Spring như bean, bộ điều khiển, dịch vụ, jpa, v.v.
Bạn có thể nói rằng SpringBoot là một trình bao bọc của Spring.
Trong SpringBoot theo cổng mặc định của Máy chủ là 8080 nhưng nếu bạn muốn thay đổi thì hãy truy cập application.properations của bạn và viết
máy chủ.port = 8084
Sử dụng spring boot bạn sẽ không cần phải xây dựng cấu hình. Điều này sẽ được thực hiện tự động khi bạn tạo dự án.
Nếu bạn sử dụng spring MVC, bạn cần tự xây dựng cấu hình. Nó phức tạp hơn, nhưng nó rất quan trọng.
Không lặp lại điều tương tự trong các câu trả lời trước,
tôi đang viết câu trả lời này cho những người đang muốn bắt đầu một dự án mới và không biết đâu là khuôn khổ tốt nhất để khởi động dự án của bạn. Nếu bạn là người mới bắt đầu với khung này, điều tốt nhất tôi thích là Sử dụng boot mùa xuân (với STS / Spring Tool Suite ). Bởi vì nó giúp rất nhiều. Nó làm tất cả các cấu hình của riêng mình. Ngoài ra, sử dụng Hibernate với spring-boot làm khung cơ sở dữ liệu. Với sự kết hợp này, ứng dụng của bạn sẽ là tốt nhất. Tôi có thể đảm bảo rằng với kinh nghiệm của tôi.
Thậm chí đây là một trong những khuôn khổ tốt nhất cho JEE (hiện tại) điều này sẽ chết trong tương lai gần. Có những lựa chọn thay thế nhẹ sắp tới. Vì vậy, hãy cập nhật với kinh nghiệm của bạn đừng dính vào một khuôn khổ cụ thể nào. Điều tốt nhất là thông thạo các khái niệm, không phải trong các khuôn khổ.
Nghĩ theo cách này:
Spring MVC là một khung dựa trên web để thực hiện kiến trúc MVC.
Spring Boot là một công cụ hướng đến lập trình viên. Lập trình viên phải tập trung vào lập trình và công cụ phải tập trung vào cấu hình. Vì vậy, chúng ta không cần lãng phí thời gian để cấu hình một bó xml để tạo ra một 'Xin chào thế giới' đơn giản.
Spring MVC và Spring Boot tồn tại cho các mục đích khác nhau. Vì vậy, không khôn ngoan khi so sánh nhau như các ứng cử viên.
Spring Boot là gì?
Spring Boot là một khung để đóng gói ứng dụng mùa xuân với các mặc định hợp lý. Điều đó có nghĩa là gì?. Bạn đang phát triển một ứng dụng web bằng Spring MVC, Spring Data, Hibernate và Tomcat. Làm thế nào để bạn đóng gói và triển khai ứng dụng này đến máy chủ web của bạn. Đến bây giờ, chúng ta phải viết thủ công các cấu hình, tệp XML, v.v. để triển khai lên máy chủ web.
Spring Boot thực hiện điều đó cho bạn với cấu hình Zero XML trong dự án của bạn. Tin tôi đi, bạn không cần mô tả triển khai, máy chủ web, v.v. Spring Boot là khuôn khổ kỳ diệu bao gồm tất cả các phụ thuộc cho bạn. Cuối cùng, ứng dụng web của bạn sẽ là một tệp JAR độc lập với các máy chủ được nhúng.
Nếu bạn vẫn còn bối rối về cách thức hoạt động của nó, vui lòng đọc về phát triển khung microservice bằng cách sử dụng spring boot.
Spring MVC là gì?
Nó là một khung ứng dụng web truyền thống giúp bạn xây dựng các ứng dụng web. Nó tương tự như khung Struts.
Spring MVC là một khung công tác Java được sử dụng để xây dựng các ứng dụng web. Nó tuân theo mẫu thiết kế Model-View-Controller. Nó thực hiện tất cả các tính năng cơ bản của khung lò xo cốt lõi như Inversion of Control, Dependency Injection.
Spring MVC cung cấp một giải pháp tao nhã để sử dụng MVC trong khung công tác mùa xuân nhờ sự trợ giúp của DispatcherServlet. Ở đây, DispatcherServlet là một lớp nhận yêu cầu đến và ánh xạ nó tới đúng tài nguyên như bộ điều khiển, mô hình và khung nhìn.
Tôi hy vọng điều này sẽ giúp bạn hiểu được sự khác biệt.