Anh ơi có phải Spring đi từ Servlet Java ngày xưa k ạ, có mối quan hệ giữa Spring và Servlet k ạ. Các trung tâm dạy lập trình em thấy đều dạy từ Servlet
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Đúng vậy em ạ, ngày xưa Spring là 1 framework wrap lại HTTP, và mỗi quan hệ của nó với Servlet em có thể tham khảo bài viết này nhé.
Nên định nghĩa rõ lại nhé:
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
1. 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ột`dispatcherservlet`.
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.