Spring từ Servlet và JSP
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
Remain: 5
2 Answers
tvd12
Enlightened
Thành Lê Văn
Teacher
Thành Lê Văn
Teacher
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
- <strong>Spring</strong> : 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
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.
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
<img class="alignnone size-full wp-image-5184" src="https://stackask.com/wp-content/uploads/2022/04/Screenshot_32.png" alt="" />
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ọ.
<img class="alignnone size-full-size wp-image-5185" src="https://stackask.com/wp-content/uploads/2022/04/Screenshot_33.png" alt="" />
<img class="alignnone size-full wp-image-5186" src="https://stackask.com/wp-content/uploads/2022/04/Screenshot_34.png" alt="" />
Spring bootSpring 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ố....
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:
SpringServler không liên quan đến nhauSpring MVCSerlvercó liên quan đến nhau, Spring MVC impl nền tảng web của java và impl mới một dispatcher.
Spring BootSerlver tương tự như MVC là có liên quan, nhưng chỉ có duy nhất một dispatcher.
-
0