Lý do chọn đề tàiLựa chọn đề tài "PHÁT TRIỂN ỨNG DỤNG BÁN LEGO SỬ DỤNGRESTFUL VÀ SPRING BOOT TÍNH HỢP THANH TỐN BẰNG PAYPAL" đến từ nhận thức sâu sắc về tính thực tiễn và sự ứng dụng cao
NỘI DUNG
Cơ sở lý thuyết
Trình bày khái niệm về Spring, IDE Intellij, MySQL và các thư viện và công cụ đi kèm để lập trình.
Phân tích thiết kế hệ thống
Nêu ra được các yêu cầu của người dùng, liệt kê các chức năng chính của hệ thống và thiết kế cơ sỏ dữ liệu Phân tích đặc tả, thiết kế các biểu đồ lớp, use case, tuần tự.
Cài đặt chương trình
Xây dựng chương trình dựa vào các phân tích ở trên, chỉ ra cách cài đặt chương trình và kết quả của sản phẩm.
- Tên phương pháp: Nghiên cứu thực tế.
- Cách thực hiện: Khảo sát hệ thống quản lý sinh viên tại các trường.
- Tên phương pháp: Nghiên cứu qua sách báo.
- Cách thực hiện: Mượn sách báo từ thư viện về nghiên cứu.
- Tên phương pháp: Nghiên cứu qua internet.
- Cách thực hiện: Thực hiện đọc thông tin, xem mã nguồn bằng trình duyệt.
Tên phương pháp Ưu điểm Hạn chế Kết luận
Nghiên cứu thực tế Khách quan, trung thực
Tốn kém, mất thời gian
Nghiên cứu qua sách báo
Thông tin cô đọng, dễ tiếp thu
Nguồn thông tin chưa nhiều, không được cập nhật
Dễ dàng thực hiện, thông tin rộng, được cập nhật thường xuyên
Không biết chọn lọc thông tin sẽ gây rối Ưu việt nhất
Bảng 1 – So sánh các phương pháp nghiên cứu
Kết hợp thực hiện cả 3 phương pháp nghiên cứu nhưng ưu tiên sử dụng phương pháp 3 nhiều hơn.
PHẦN II NỘI DUNG Chương 1: Cơ sở lý thuyết
1.1 Cơ sở lý luận và thực tiễn
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).
Spring được chia làm nhiều module khác nhau, tùy theo mục đích phát triển ứng dụng mà ta dùng 1 trong các module đó Dưới đây là kiến trúc tổng thể của Spring Framework.
Hình 1 1 Kiến trúc của Spring
Test: tầng này cung cấp khả năng hỗ trợ kiểm thử với JUnit và TestNG. Core Container:
Bao gồm các module spring core, beans, context và expression languate (EL) Spring core, bean cung cấp tính năng IOC và Dependency Injection Spring Context hỗ trợ đa ngôn ngữ (internationalization), các tính năng Java EE như EJB, JMX Expression Language được mở rộng từ Expresion Language trong JSP Nó cung cấp hỗ trợ việc setting/getting giá trị, các method cải tiến cho phép truy cập collections, index, các toán tử logic…
AOP, Aspects and Instrumentation: những module này hỗ trợ cài đặt lập trình hướng khía cạnh (Aspect Oriented Programming), hỗ trợ tích hợp với AspectJ.
Data Access / Integration Nhóm này bao gồm JDBC, ORM, OXM, JMS và module Transaction Những module này cung cấp khả năng giao tiếp với database.
Web Hay còn gọi là Spring MVC Nhóm này gồm Web, Web- Servlet… hỗ trợ việc tạo ứng dụng web.
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.
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.
1.2 Tổng quan về công nghệ chính
1.2.1 Tổng quan về ngôn ngữ lập trình Java
Hình 1 2 Ngôn ngữ lập trình java
Java là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động.
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak.
Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem.
Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi”(Write Once, Run Anywhere – WORA) Chương trình phần mềm viết bằngJava có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó.
1.2.2 Tổng quan về IDE Intellij
IntelliJ IDEA là một IDE (Integrated Development Environment) phổ biến được phát triển bởi JetBrains Được thiết kế đặc biệt cho lập trình viên Java, Kotlin và các ngôn ngữ khác trên nền tảng JVM (Java Virtual Machine), IntelliJ IDEA cung cấp một loạt các tính năng mạnh mẽ để hỗ trợ quá trình phát triển phần mềm Dưới đây là một số điểm nổi bật của IntelliJ IDEA: Hỗ trợ nhiều ngôn ngữ và framework:
IntelliJ IDEA không chỉ hỗ trợ lập trình Java và Kotlin mà còn cung cấp tính năng tương tự cho nhiều ngôn ngữ khác như JavaScript, TypeScript, HTML, CSS, SQL và nhiều framework phổ biến như Spring, Hibernate, Android và others Tích hợp công cụ phát triển: IntelliJ IDEA tích hợp với nhiều công cụ phát triển phổ biến như Maven, Gradle và Ant để quản lý dự án và phụ thuộc
Nó cũng hỗ trợ quản lý phiên bản với Git, SVN và Mercurial Tính năng thông minh: IDE cung cấp nhiều tính năng thông minh như code completion, refactoring, debugging và analysis để giúp lập trình viên viết mã nhanh chóng và hiệu quả Hỗ trợ kiểm thử và triển khai: IntelliJ IDEA có các tính năng tích hợp để kiểm tra và triển khai ứng dụng, bao gồm cả tích hợp với các dịch vụ cloud như Amazon Web Services (AWS) và Google Cloud Platform (GCP) Plugin phong phú: IDE hỗ trợ plugin rất phong phú từ cộng đồng và từ
JetBrains, giúp mở rộng các tính năng theo nhu cầu của người dùng Hỗ trợ đa nền tảng: IntelliJ IDEA có thể chạy trên nhiều hệ điều hành như Windows, macOS và Linux IntelliJ IDEA có phiên bản Community (miễn phí) và
Ultimate (trả phí), với phiên bản Ultimate cung cấp các tính năng mở rộng như hỗ trợ các ngôn ngữ và framework khác nhau Đây là một trong những IDE phổ biến và được ưa chuộng trong cộng đồng phát triển phần mềm.
1.2.3 Tổng quan về cơ sở dữ liệu MySQL
Hình 1 4 Cơ sở dữ liệu MySQL
MySQL là một hệ quản trị cơ sở dữ liệu (DBMS) mã nguồn mở phổ biến, được sử dụng rộng rãi trong các ứng dụng web và doanh nghiệp Dưới đây là một số điểm nổi bật về MySQL:
Mã nguồn mở: MySQL là một sản phẩm mã nguồn mở, điều này có nghĩa là bạn có thể sử dụng, sửa đổi và phân phối nó miễn phí Hỗ trợ nhiều nền tảng: MySQL có thể chạy trên nhiều hệ điều hành khác nhau như Windows, macOS và Linux, cũng như trên nhiều kiến trúc phần cứng Tính năng mạnh mẽ: