spring framework
TRANSCRIPT
TRƯỜNG ĐẠI HỌC AN GIANG
KHOA KỸ THUẬT – CÔNG NGHỆ - MÔI TRƯỜNG
Sinh viên: Nguyễn Thiện An – DH114081
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
2
Nội dung
• Lý do thực hiện đề
tài
• Cơ sở lý thuyết:
• Spring framework
• AngularJS
• Cài đặt ứng dụng
• Kết luận
3
Lý 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 35
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ì
4
Lý do thực hiện đề tài (tt)
- Hầu hết các hệ thống đều được phát triển
trên nền web.
- Công nghệ di động đang ngày càng trở nên
phổ biến, số lượng người sử dụng và truy cập
qua các thiết bị di động tăng một cách nhanh
chóng.=> 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”.
5
Spring framework
- Là framework Java mã nguồn
mở được sử dụng nhiều nhất
hiện nay.
- Spring có cách tạo và liên kết
các thành phần rất riêng và hữu
í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
6
Spring 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ì.
7
Spring 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.
8
Spring 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 “long leo”.
- 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 dung
và tạo các model phu hợp và trả về cho view
Spring MVC (tt)
9Mô hình Spring MVC và sơ đồ luồng xử lý
10
Spring Security
- Spring Security cung cấp các giải pháp để bảo vệ một ứng dụng được
phát triển bằng Spring framework.
- Thực hiện 2 nhiệm vụ chính của việc bảo mật ứng dụng là "xác thực"
(authentication) và "ủy quyền" (authorization) hay "kiểm soát truy cập"
(access - Scontrol)
• 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.
11
Spring Security (tt)
Sơ đồ cơ chế bảo
vệ ứng dụng REST
API với Spring
Security
AngularJS
12
Ngày nay các ứng
dụng web hiện đại
thường được xây
dựng như một
Single Page
Application (SPA)
và AngularJS là một
framework tuyệt
vời để xây dựng 1
SPA
AngularJS (tt)
13
Những đặc trưng
nổi bật tạo nên
sức mạnh cho
AngularJS
AngularJS (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 dung)
AngularJS (tt)
15
One-way binding và Two-way binding
AngularJS (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 dung
directive sẽ giảm thiểu được số lượng the 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 the HTML) viết tắt là E
• Directive dạng attribute (thuộc tính của một the HTML) viết tắt là
A
• Directive dạng class(class CSS) viết tắt là C
Cài đặt ứng dụng
17
Mô hình ứng dụng Music Manager
Cài đặt ứng dụng (tt)
18
Module Client và Module Server của ứng
dụng
Cài đặt ứng dụng (tt)
19
Cài đặt ứng dụng (tt)
20Nội dung 1 message
Cài đặt ứng dụng (tt)
21Response cho request update 1 bài hát
Cài đặt ứng dụng (tt)
22Giao diện chương trình
Kế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.
Kết quả đạt được (tt)
24
Về mặt ứng dụng:
- Thiết kế và cài đặt được ứng dụng web với mô hình web server và data
server tách biệt nhau, giao tiếp với nhau thông qua ActiveMQ.
- 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 dung với HTM5 và Bootstrap có hỗ trợ
responsive.
- Xây dựng thành công ứng dụng quản lý nhạc với đầy đủ các chức năng
cơ bản.
- Xây dựng thành công một ứng dụng quản lý nhạc trên nền web có áp
dụng các công nghệ mới trong quá trình phát triển một ứng dụng Web
enterprise hiện đại.
Hạ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
Hướ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 dung.
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.
27
Cám ơn quý thầy cô và các bạn đã lắng nghe.