2 Answers
-
0
1: Spring
2: Java web Servlet
3: Java web container
3: Spring MVC
4: Spring boot
5: Spring boot web.
Và giải thích sẽ như sau
- Spring : Khi nói Spring không thì chỉ nói đến các core của spring ví dụ IOC, DI, bean...etc.
Spring đơn giản là một Framework cho Java và nó cung cấp inversion of control container
cho java platform.
===> Spring và Servlet không liên quan gì đến nhau cả.
===> Spriing là một Framework cho java
2: Servlet : Chắc cái này dễ hiểu rồi, Servlet là nền tảng core để impl một chức năng nhận và phản hồi request từ web client (Thường là HTTP), về sau có rất nhiều Framework web cho java thì đều phải thông qua thằng này.
3: Java web container : Bạn từ đọc nhé
4: Spring MVC là Spring Framework sử dụng để impl web. Bản chất cơ bản thì sẽ sử dụng các tính năng của Spring và impl thêm Servlet.
Nếu bạn đọc kỹ về Spring thì bạn sẽ thấy Spring MVC tạo mới mộtdispatcherservlet
.
Có thể bạn chưa biết thì HttpServlet
abstract là một dispatcherservlet mặc định của java. Tất cả reuqest đều đi qua method service
trong class này
Các Framework ví dụ như Spring đều extends lại HttpServlet
tuy nhiên đa số họ vẫn sử dụng service
mặc định này và không thay đổi nó. Các Framework chỉ IMPL lại method có các param là HttpServletRequest req, HttpServletResponse resp
để khi thực hiện chạy dòng 790 thì sẽ gọi ngược lại đến code impl của họ.
4: Spring boot
Spring boot core thì sẽ không có impl web, bản chất Spring boot sẽ hỗ trợ các tính năng giúp chúng ta tự động config thông qua việc scan file config spring.factories
trên các thư viện và thực hiện khởi tạo bean và chạy theo khai báo trên spring.factories
.
Spring boot giúp chúng ta ít phải thực hiện config hơn, các thư viện..etc.. sẽ thực hiện giúp chúng ta, chúng ta sẽ chỉ cần khai báo cơ bản, nếu cần thực hiện đổi thông số thì sẽ cần khai báo thông số....
5: Spring boot web.
Đây chính là thư viện spring-boot-starter-web
thư viện này là một starter, nó có các lib cho web và tự động config nền tảng web cho chúng ta, chúng ta không cần khai báo web.xml.
Tuy nhiên có 1 sự khác biệt duy nhất giữa Spring boot web và Spring MVC đó là Spring boot web chỉ có duy nhất một dispatcher còn Spring MVC thì có thể khai báo nhiều dispatcher
.
(Xưa mình học là vậy, giờ k biết đổi chưa @@)
Kết luận:
Spring và Servler không liên quan đến nhau
Spring MVC và Serlver có liên quan đến nhau, Spring MVC impl nền tảng web của java và impl mới một dispatcher.
Spring Boot và Serlver tương tự như MVC là có liên quan, nhưng chỉ có duy nhất một dispatcher.
-
0