Nội dung bài viết:
- Ciới thiệu về Spring Framework.
- Thành phẩn của Spring Framework
- Lý do sử dụng
- Sơ đồ luồng đi của chương trình
- Download demo
- Tài liệu tham khảo.
1. GIỚI THIỆU VỀ SPRING FRAMEWORK
Spring Framework(gọi tắt Spring), là một framework mã nguồn mở được viết bằng Java. Nó được xem như là một giải pháp kiến trúc tốt nhất của Java EE hiện nay.
Nó được sử dụng phổ biến nhất trong các Framework của Java, với cộng đồng sử dụng đông đảo, tài liệu trainning và support rất nhiều.
Tại Việt Nam, Spring là Framework Java được ưa thích sử dụng và rất phổ biến.
Biểu đồ độ phổ biến của các Framework trong Java.
2. THÀNH PHẦN CỦA SPRING FRAMEWORK
2.1. Core Container.
Core package là phần cơ bản nhất của framework, cung cấp những đặc tính IoC (Inversion of Control: Khung chứa đảo ngược khống chế) và Dependency Injection.
Khái niệm cơ bản là BeanFactory - cài đặt factory pattern cho phép bạn móc nối sự phụ thuộc giữa các đối tượng trong file cấu hình.
2.2. Spring Context/Application Context.
Phía trên của Core package là Context package - cung cấp cách để truy cập đối tượng.
Context package kết thừa các đặc tính từ bean package và thêm vào chức năng đa ngôn ngữ (I18N), truyền sự kiện, resource-loading,...
2.3. Spring AOP (Aspect Oriented Programming).
Spring AOP module tích hợp chức năng lập trình hướng khía cạnh vào Spring framework thông qua cấu Hình của nó. Spring AOP module cung cấp các dịch vụ quản lý giao dịch cho các đối tượng trong bất kỳ ứng dụng nào sử dụng Spring. Với Spring AOP chúng ta có thể tích hợp declarative transaction management vào trong ứng dụng mà không cần dựa vào EJB component.
Spring AOP module cũng đưa lập trình metadata vào trong Spring. Sử dụng cái này chúng ta có thể thêm annotation (chú thích) vào source code để hướng dẫn Spring và làm thế nào để liên hệ với aspect (Khía cạnh khác).
2.4. Spring DAO.
DAO package cung cấp cho tầng JDBC, bỏ bớt những coding dài dòng của JDBC và chuyển đổi mã lỗi được xác định bởi database vendor. JDBC package cung cấp cách lập trình tốt như declarative transaction management.
Tầng JDBC và DAO đưa ra một cây phân cấp exception để quản lý kết nối đến database, điều khiển exception và thông báo lỗi được ném bởi vendor của database. Tầng exception đơn giản điều khiển lỗi và giảm khối lượng code mà chúng ta cần viết như mở và đóng kết nối. Module này cũng cung cấp các dịch vụ quản lý giao dịch cho các đối tượng trong ứng dụng Spring.
2.5. Spring ORM.
ORM package cung cấp tầng tích hợp với object-
relational mapping API bao gồm: JDO, Hibernate, iBatis.
Sử dụng ORM package bạn có thể sử dụng tất cả các object-relational mapping đó kết hợp với tất cả các đặc tính của Spring như declarative transaction management.
2.6. Spring Web module.
Spring Web package cung cấp đặc tính của web như: chức năng file-upload, khởi tạo IoC container sử dụng trình lắng nghe serlvet và web-oriented application context.
Nằm trên application context module, cung cấp context cho các ứng dụng web. Spring cũng hỗ trợ tích hợp với Struts, JSF và Webwork. Web module cũng làm giảm bớt các công việc điều khiển nhiều request và gắn các tham số của request vào các đối tượng domain.
2.7. Spring MVC Framework.
Spring Framework là một ứng dụng mã nguồn mở phổ biến cho Java EE phát triển dễ dàng hơn. Nó bao gồm một container, một framework cho các thành phần quản lý, và một bộ các snap-in dịch vụ cho các giao diện người dùng web, giao dịch,.... Một phần của
Spring Framework là Spring Web MVC, một mô hình MVC mở rộng để tạo các ứng dụng web.
MVC Framework thì cài đặt đầy đủ đặc tính của MVC pattern để xây dựng các ứng dụng Web. MVC framework thì cấu hình thông qua giao diện và chứa được một số kỹ thuật view bao gồm: JSP, Velocity, Tiles và generation of PDF và Excel file. Spring MVC framework cung cấp sự phân biệt rõ ràng giữa domain model và web form.
3. LÝ DO SỬ DỤNG
- Tất cả các framework đã được tích hợp rất tốt vào Spring.
- Hoạt động rất tốt khi áp dụng theo kiến trúc MVC.
- Sử dụng cơ chế plug-in.
- Kết hợp rất tốt với các O/R (object-relational) Mapping frameworks như là Hibernate.
- Dễ Testing ứng dụng.
- Ít phức tạp hơn so với các framework khác.
- Cộng đồng người sử dụng rất nhiều, nhiều sách mới được xuất bản.
4. SƠ ĐỒ LUỒNG ĐI CỦA CHƯƠNG TRÌNH
Sơ đồ request - reponse:
Sơ đồ request - reponse:
DispatcherServlet của Spring MVC sẽ đọc file xml cấu hình theo nguyên tắc mà SpringMVC đề ra:
- {servlet-name} ==> /WEB-INF/{servlet-name}-servlet.xml
Trong trường hợp bạn không muốn sử dụng nguyên tắc đó bạn có thể cấu hình DispatcherServlet của SpringMVC theo cách sau (Trong file web.xml):
1
2
3
4
5
6
7
8
9
10
| < servlet > < servlet-name >my-dispatcher-name</ servlet-name > < servlet-class >org.springframework.web.servlet.DispatcherServlet </ servlet-class > < init-param > <!-- override default name {servlet-name}-servlet.xml --> < param-name >contextConfigLocation</ param-name > < param-value >/WEB-INF/springmvc-myconfig.xml</ param-value > </ init-param > < load-on-startup >1</ load-on-startup > </ servlet > |
Luồng đi chính của ứng dụng MVC:
5. DOWNLOAD DEMO
Link tải demo và tài liệu tham khảo:
https://drive.google.com/drive/u/0/folders/0B8PjuGQA6-MdbnFaTGNDdnZON2s
Công nghệ sử dụng trong ví dụ demo:
6. TÀI LIỆU THAM KHẢO
Bài viết có tham khảo tài liệu và sử dụng hình ảnh của các trang dưới dây:
Link tải demo và tài liệu tham khảo:
https://drive.google.com/drive/u/0/folders/0B8PjuGQA6-MdbnFaTGNDdnZON2s
Công nghệ sử dụng trong ví dụ demo:
- Spring MVC 4
- Maven project
- Database Postgres SQL 9.2
6. TÀI LIỆU THAM KHẢO
Bài viết có tham khảo tài liệu và sử dụng hình ảnh của các trang dưới dây: