Tìm hiểu framework spring và xây dựng ứng dụng quản lý nhạc phía client
Trang 1TRƯỜNG ĐẠI HỌC AN GIANG KHOA KỸ THUẬT – CÔNG NGHỆ - MÔI TRƯỜNG
GVHD: Th.S Huỳnh Lý Thanh Nhàn
BÁO CÁO KHÓA LUẬN TỐT NGHIỆP
Đề tài: TÌM HIỂU FRAMEWORK SPRING
VÀ XÂY DỰNG ỨNG DỤNG QUẢN LÝ NHẠC PHÍA CLIENT
Trang 3Lý do thực hiện đề tài
- 16.2% dự án là hoàn thành đúng hạn và nằm
trong giới hạn ngân sách
- Và hơn 83.8% dự án thất bại hoặc không đáp ứng
được những yêu cầu ban đầu
Þ Do các thành phần quá phụ thuộc lẫn nhau,
chồng chéo, không có tính sử dụng lại
- Ngoài ra chi phí cho việc bảo trì và mở rộng hệ
thống luôn lớn hơn nhiều lần so với các pha khác
3 3
5 7
15 67
Xác định yêu cầu Đặt tả Thiết kế Lập trình Kiểm thử Bảo trì
Trang 4=> Do đó chúng tôi thực hiện đề tài “Tìm hiểu Framework Spring
và xây dựng ứng dụng quản lý nhạc phía client”.
Trang 5ích nhờ vào IoC container và
Dependencies Injection (DI)
- Được giới thương mại công nhận
như một framework có tầm
quan trọng trong chiến lược kiến
tạo phần mềm
Trang 6Spring framework (tt)
Spring được sử dụng rộng rãi nhờ:
- Đơn giản: Spring framework thực sự rất đơn giản vì nó áp dụng
mô hình POJO (Plain Old Java Objects) và POJI (Plain Old Java Interfaces)
- Dễ dàng kiểm soát lỗi: Môi trường giả lập đơn giản Có thể sử dụng Console để kiểm thử các thành phần riêng lẽ
- Ít phụ thuộc: Trong Spring các đối tượng ít phụ thuộc lẫn nhau, đây
là vấn đề cốt lõi của Spring framework -> dễ sửa đổi, nâng cấp bảo trì
Trang 7Spring MVC
- Spring MVC cung cấp kiến trúc
Model – View - Controller và các
components sẵn có để sử dụng
và phát triển ứng dụng web một
cách nhanh chóng và linh hoạt
- Spring MVC được thiết kế xung
quanh Dispatcher Servlet để xử
lý tất cả các HTTP request và
HTTP response
Trang 8Spring MVC (tt)
Mô hình MVC là kết quả của việc tách các khía cạnh khác nhau của ứng dụng (logic đầu vào, các xử lý logic, UI) trong khi đó cung cấp một sự kết hợp giữa các thành phần đó một cách “lỏng lẻo”
- Model: đóng gói dữ liệu ứng dụng và bao gồm các POJO
- View: Chịu trách nhiệm nhận giá trị của model và vẽ ra trang HTML mà trình duyệt có thể hiển thị được
- Controller: Chịu trách nhiệm nhận và xử lý các yêu cầu từ người dùng
và tạo các model phù hợp và trả về cho view
Trang 9Spring MVC (tt)
9
Mô hình Spring MVC và sơ đồ luồng xử lý
Trang 10• Xác thực là quá trình xác nhận và chứng thực một principal.
• Uỷ quyền đề cập đến quá trình quyết định có một principal được phép thực hiện những hành động gì trong phạm vi ứng dụng của chúng ta
Trang 11Spring Security (tt)
Sơ đồ cơ chế bảo
vệ ứng dụng REST API với Spring Security
Trang 1212
Ngày nay các ứng
dụng web hiện đại
thường được xây
Trang 13AngularJS (tt)
13
Những đặc trưng nổi bật tạo nên sức mạnh cho AngularJS
Trang 14AngularJS (tt)
14
Đối với Angular, View sẽ là DOM, Controller là các hàm JavaScript, còn Model sẽ là dữ liệu được lưu ở thuộc tính của các đối tượng trong JavaScript
MVC giúp chúng ta tách ứng dụng thành 3 thành phần khác nhau Model (xử lý, truy xuất database), View (giao diện) và Controller (điều hướng yêu cầu từ người dùng)
Trang 15AngularJS (tt)
15
One-way binding và Two-way binding
Trang 16AngularJS (tt)
16
Directives thực sự là đặc điểm tạo nên một khoảng cách lớn giữa Angular
và bất kỳ framework JavaScript khác
Directives đề cập đến một tính năng để mở rộng HTML, việc dùng
directive sẽ giảm thiểu được số lượng thẻ HTML, code HTML nhìn sẽ gọn gàng và sáng sủa hơn
Directtive không chỉ giới hạn một phần tử HTML mà còn có thể là thuộc
tính, lớp hoặc các chú thích HTML AngularJS cung cấp cho chúng ta 3 loại directive:
• Directive dạng element (một thẻ HTML) viết tắt là E
• Directive dạng attribute (thuộc tính của một thẻ HTML) viết tắt là A
• Directive dạng class(class CSS) viết tắt là C
Trang 17Cài đặt ứng dụng
17
Mô hình ứng dụng Music Manager
Trang 18Cài đặt ứng dụng (tt)
18
Module Client và Module Server của ứng dụng
Trang 19Cài đặt ứng dụng (tt)
19
Trang 20Cài đặt ứng dụng (tt)
20
Nội dung 1 message
Trang 21Cài đặt ứng dụng (tt)
21
Response cho request update 1 bài hát
Trang 22Cài đặt ứng dụng (tt)
22
Giao diện chương trình
Trang 23Kết quả đạt được
23
Về mặt lý thuyết:
- Nắm được kiến trúc tổng quan của Spring Framework cũng như các
nguyên lý cơ bản và cơ chế hoạt động của framework này
- Nắm được mô hình web MVC trong Spring framework và các cơ chế để bảo mật một ứng dụng web được hỗ trợ trong module Spring Security
- Hiểu cơ chế giao tiếp giữa client và server trong mô hình web hiện đại theo hướng RESTful service; cách giao tiếp giữa các thành phần của một
hệ thống hoặc giữa các hệ thống với nhau thông qua mô hình Messaging system
Trang 24- Xây dựng được ứng dụng web dạng SPA mà việc giao tiếp với server
thông qua RESTful service với sự hỗ trợ của AngularJS
- Thiết kế giao diện người dùng với HTM5 và Bootstrap có hỗ trợ
Trang 25Hạn chế và khó khăn
25
Các chức năng cơ bản của ứng dụng đã hoàn thành tốt, tuy nhiên do yêu cầu và phạm vi đề tài chỉ dừng lại ở mức demo công nghệ nên ứng dụng chưa hấp dẫn
Hạn chế về vật chất, không có host trên internet có cài đặt đầy đủ các
phần mềm cần thiết tạo khó khăn trong việc thực hiện demo chương trình trên internet Vấn đề triển khai những công nghệ nêu trên không khó về mặt kỹ thuật nhưng phải xây dựng một cơ sở hạ tầng đầy đủ và tốt để có thể thực thi ứng dụng
Trang 26Hướng phát triển
26
Tiếp tục tìm hiểu về một số cơ chế xác thực và phân quyền trong module Spring Security như cơ chế xác thực Oauth, Oauth2, OpenID,… để xây dựng ứng dụng với cơ chế bảo mật hơn
Bên cạnh đó tiếp tục tìm hiểu các module còn lại của Spring Framework như Spring AOP nhằm tích hợp vào hệ thống để thực hiện một số chức
năng đặc biệt như ghi log người dùng
Tìm hiểu về web socket và kết hợp với AngularJS để hướng đến việc xây dựng một ứng dụng web động với thời gian thực