CHƯƠNG 1. Giới thiệu về Spring Hinh̀† 1. Logo của Spring Framework [1] Spring là một Framework phát triển các ứng dụng Java được sử dụng bởi hàng triệu lập trình viên. Nó giúp tạo các ứng dụng có hiệu năng cao, dễ kiểm thử, sử dụng lại code.
Spring nhẹ và trong suốt (nhẹ: kích thước nhỏ, version cơ bản chỉ khoảng 2MB; trong suốt: hoạt động một cách trong suốt với lập trình viên) Spring là một mã nguồn mở, được phát triển, chia sẻ và có cộng đồng người dùng rất lớn. Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming. Những tính năng core (cốt lõi) của Spring có thể được sử dụng để phát triển Java Desktop, ứng dụng mobile, Java Web. Mục tiêu chính của Spring là giúp phát triển các ứng dụng J2EE một cách dễ dàng hơn dựa trên mô hình sử dụng POJO (Plain Old Java Object) 1.
Ưu điểm Spring cho phép lập trình viên sử dụng POJOs. Việc sử dụng POJOs giúp bạn không phải làm việc với EJB, ứng dụng, các luồng chạy, cấu hình… đơn giản hơn rất nhiều. 20 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Spring được tổ chức theo kiểu mô đun. Số lượng các gói và các lớp khá nhiều, nhưng bạn chỉ cần quan tâm đến những gì bạn cần và không cần quan tâm đến phần còn lại.
Spring hỗ trợ sử dụng khá nhiều công nghệ như ORM Framework, các logging framework, JEE, các thư viện tạo lịch trình (Quartz và JDK timer)… Module Web của Spring được thiết kế theo mô hình MVC nên nó cung cấp đầy đủ các tính năng giúp thay thế các web framework khác như Struts. Giới thiệu về Spring boot Hinh̀† 1. Logo của Spring boot [3] Spring Boot chính là một Java framework siêu to và khổng lồ và có nhiều khả năng hữu ích vì nó có thể giúp lập trình viên giải quyết rất nhiều vấn đề. So với framework Spring thông thường, Spring Boot tỏ ra những lợi thế vượt trội.
Khi sử dụng Spring Boot, rất nhiều thứ được cải tiến hỗ trợ lập trình viên như: Auto config: tự động cấu hình thay lập trình viên, bạn chỉ cần viết code và tiến hành chạy hệ thống là được. Dựa trên các Annotation để tạo lập các bean thay vì XML. Server Tomcat có thể được nhúng ngay trong file JAR build ra và có thể chạy ở bất kì đâu mà java chạy được. Ưu điểm nổi bật của Spring Boot Những tính năng nổi bật của Spring Boot mà bạn không thể bỏ qua như: Phát triển web một cách đơn giản và nhanh chóng.
Config an toàn 21 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Có thể hỗ trợ YAML Có tính quản trị cao Dễ dàng ứng dụng Spring và các sự kiện. Có thể cấu hình ở bên ngoài và tạo ra những tệp thuộc tính. Tính bảo mật cao. Đặc điểm nổi bật của Spring Boot Spring Application: Đây là class được dùng để khởi chạy ứng dụng từ hàm main().
Vì thế, khi khởi chạy ứng dụng, các lập trình viên chỉ cần gọi method run() là được. Externalized Configuration: Spring Boot cho phép người dùng có thể sử dụng cấu hình (config) từ bên ngoài. Chính vì vậy mà mỗi ứng dụng được tạo ra có thể chạy được trên nhiều môi trường khác nhau. Profiles: Dùng để phân chia các loại cấu hình cho các môi trường khác nhau.
Loggin: Sử dụng phục vụ cho toàn bộ chức năng log trong phạm vi nội bộ. Những logging này sẽ được quản lý một cách mặc định. Ngoài ra còn rất nhiều các tính năng tương tự khác của Spring Boot như: Developing web Applications, Working with SQL Technologies, Security, Messaging, Caching, Calling rest Services with RestTemplate/WebClient, Sending Email, Validation,…. Tổng kết Spring Boot mang đến cho các lập trình viên rất nhiều những tính năng tuyệt vời.
Hy vọng với những thông tin chia sẻ ở trên, các bạn đã hiểu hơn về Spring Boot là gì, có nên sử dụng Spring Boot hay không và nên tìm hiểu những kiến thức gì để vận dụng Spring Boot được tốt nhất. Khái niệm JSON Web Token (JWT) là một tiêu chuẩn mở (RFC 7519) định nghĩa một phương thức nhỏ gọn và khép kín, là một phương tiện đại diện cho các yêu cầu chuyển giao giữa hai bên client - server dưới dạng một JSON. Các thông tin được truyền tải 22 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT được đính kèm với một chữ ký điện được mã hóa lại bằng HMAC hoặc RSA có thể xác minh tính đúng đắn do đó tạo ra sự tin cậy cho dữ liệu. Cấu trúc JSON Web Token bao gồm 3 thành phần chính được cách nhau bởi dấu chấm (.
+ Header + Payload + Signature ● Header Header sẽ chứa kiểu dữ liệu và thuật toán sửa dụng để mã hóa ra chuỗi JWT bao gồm 2 thành phần: loại token (mặc định là JWT) và thuật toán sử dụng để mã hóa như HMAC hoặc RSA. Sau đó JSON này sẽ được mã hóa Base64Url và thêm vào phần đầu tiên của JWT token. ● Payload Phần thứ 2 của token là payload, chứa các nội dung của thông tin (claim). Thông tin được truyền đi có thể là mô tả của một thực thể hoặc có thể là thông tin bổ sung cho phần Header.
Có 3 kiểu claims: registered, public, và private claims. Registered claims: Một tập hợp các nội dung thông tin đã được quy định sẵn, chúng không bắt buộc nhưng tùy vào các ứng dụng thực hiện thì khuyến khích sử dụng để tạo ra các điều kiện bắt buộc đối với những thông tin cần thiết. Public claims: Những thông tin có thể tự định nghĩa tùy theo ý muốn của người sử dụng ví dụ role, username, v. Nhưng để tránh trùng lặp với các Registered claims chúng ta nên quy định các claims được liệt kê trong IANA JSON Web Token Registry.
Private claims: Đây cũng là những thông tin tự định nghĩa hoặc các thông tin thêm, thường được sử dụng để chia sẻ thông tin giữa các Client. ● Signature Để tạo ra phần chữ ký này cần có encoded header, và encoded payload đã được mã hóa ở trên cùng kèm theo một khóa bí mật (chuỗi secret) và một thuật toán được chỉ định trong phần header. 23 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Để đảm bảo tính đúng đắn của dữ liệu, chữ ký được sử dụng để xác minh thông điệp vẫn nguyên vẹn trong quá trình truyền nhận. Nếu thông tin đã bị ai đó cố ý thay đổi trong phần header hoặc payload và gửi mạo danh đến server (nơi tạo và ký token) thì quá trình xác nhận thông tin sẽ không hợp lệ.
Giới thiệu Hinh̀† 1. Logo của ReactJS [7] ReactJS ra mắt vào năm 2013, là một mã nguồn mở được phát triển bởi Facebook, bản thân nó được biết đến là một thư viện Javascript dùng để xây dựng các giao diện người dùng hay UI một cách dễ dàng và tiện lợi. Điểm nổi bật nhất của ReactJS đó là việc render dữ liệu được thực hiện cả ở trên tầng Server và ở dưới Client. Trong lập trình ứng dụng front-end, lập trình viên thường sẽ phải làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng.
Điểm đến cuối cùng của việc sử dụng ReactJS đó là đảm bảo tốc độ nhanh, mượt và có khả năng mở rộng cao. Đặc trưng JSX: Trong React, lập trình viên sẽ thường dùng JSX thay vì thường xuyên sử dụng JavaScript để thiết kế bố cục trang web. JSX là một cú pháp mở rộng của Javascript, nó cho phép lập trình viên viết HTML trong React một cách dễ dàng. Khi biên soạn, JSX tối ưu hóa code, vì thế nó chạy nhanh hơn so với code JavaScript tương đương.
Redux: Redux là một vùng chứa trạng thái có thể dự đoán được hay còn biết đến là một thư viện của JavaScript. Redux được thiết kế nhằm hỗ trợ lập trình viên khi viết các ứng dụng của JavaScript có thể hoạt động trong các môi trường khác nhau. Mặc dù 24 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Redux chủ yếu được sử dụng như một công cụ quản lý trạng thái với React, nhưng nó có thể được sử dụng với bất kỳ Framework hoặc thư viện JavaScript khác. Giới thiệu React Native là môṭframework được taọ bởi Facebook.
React Native vượt trôịở chỗ chỉ cần viết môṭlần là có thể build ứng dụng cho cả iOS lẫn Android. Mục tiêu cốt lõi của thư viện này là nhằm cung cấp hiệu suất làm việc cao nhất vì cần tìm hiểu 2 hệ sinh thái hoàn toàn khác biệt (IOS, Android). Cho phép các lập trình viên sử dụng JavaScript để làm mobile apps trên cả Android và iOS với có trải nghiệm và hiệu năng như native. Đặc trưng React Native cho phép lập trình viên viết ứng dụng trực tiếp trên Javasript.
Dễtiếp cận đối với người đã kiến thức lập trình căn bản vềJavascript Do react native cung cấp môṭcấu trúc dựa trên component, tức là các component là những mảnh ghép được ghép laịthành môṭứng dụng. Mỗi component sẽ tự quyết định nó render như thếnào và logic riêng bên trong đó. - Có thể tái sử dụng laịcác component này taịbất kì nơi nào. Bô ̣công cụ phát triển cho lập trình là môṭyếu tố quan trọng khi chọn nền tền phát triển.
25 CHƯƠNG 2: KHẢO SÁT, PHÂN TÍCH, THIẾT KẾ CHƯƠNG 2. KHẢO SÁT, PHÂN TÍCH, THIẾT KẾ 2. Phân tích hiện trạng Công nghệ kĩ thuật là một trong những lĩnh vực quan trọng trong cơ cấu kinh tế Việt Nam cũng như quan trọng cho việc phát triển đất nước ngày càng hiện đại hơn Theo số liệu nghiên cuứu cuối quý năm 2021 chứng kiến số lượng máy tính để bàn, máy tính xách tay bán ra tăng 1% so với cùng kỳ năm 2020, đạt 92 triệu chiếc. Thành tích này góp phần vào tổng doanh số máy tính cả nhân toàn cầu trong năm 2021 là 341 triệu chiếc, tăng 15% so với năm 2020.
Giới chuyên môn nhận định, số máy tính bán ra tăng cao chưa từng thấy, vượt tới 27% so với thời điểm trước dịch là năm 2019, là minh chứng rõ nét cho tiến trình chuyển đổi số được thúc đẩy mạnh mẽ do đại dịch covid-19. Số lượng bán ra tăng cao ngoài mọi kỳ vọng cũng cho thấy người dùng đang tích cực mua bổ sung máy tính mới, nâng cấp các máy tính đang sử dụng với những linh kiện hiện đại hơn, có hiệu suất cao hơn như Card màn hình, nâng cấp Ram, ổ cứng, …. Để phần nào giải quyết nhu cầu mua máy tính, nhóm chúng em xây dựng website và app mobile bán linh kiện máy tính giúp cho việc xây dựng máy tính từ những linh kiện này có thể dễ dàng hàng nhờ việc mua chúng một cách thật thuận tiện nhất có thể. Khảo sát một số phần mềm 2.
GearVN Các màn hình chính Hinh̀† 2. Màn hình trang chủ GEARVN 26 CHƯƠNG 2: KHẢO SÁT, PHÂN TÍCH, THIẾT KẾ Hinh̀† 2. Màn hình đăng nhập của GEARVN Hinh̀† 2.