CHƯƠNG 1: CƠ SỞ LY THUYET 1. Giới thiệu về Spring Boot Trước đây ta có Spring MVC là một Framework tuyệt vời để phát trién website. Tuy nhiên, do tồn tại một số nhược điểm như quá nhiều cấu hình, ., Spring Boot đã được xây dựng dé khắc phục những nhược điểm đó. Spring Boot là một dự án phát triển trên nền tảng ngôn ngữ java và là một phần của hệ sinh thái Spring framework.
Nó giúp cho các lập trình viên chúng ta đơn giản hóa quá trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business cho ứng dụng. Spring Boot cung cấp tính năng RAD (Rapid Application Development) — Phát triên ứng dụng nhanh, được dùng đê tao các ứng dụng độc lập dựa trên Spring va không yêu câu câu hình XML. Nhờ đó nó đã loại bỏ được vân dé cân phải câu hình quá nhiêu mả người tiên nhiệm Spring MVC đã gặp phải. Spring Boot dần chiếm được cảm tình của đông đảo các lập trình viên java là nhờ các ưu điềm sau: e_ Phát triển các hệ thống website một cách dé dàng và tiết kiệm thời gian.
e Không có cấu hình XML và tự động cấu hình tất cả các components cho một ứng dụng Spring cấp sản xuất. e Với các máy chủ nhúng được tạo sẵn như Tomcat, Jetty va Undertow, Spring Boot giúp việc triển khai hệ thống nhanh hơn và hiệu quả hơn. e_ Điểm cuối HTTP, cho phép nhập các tính năng bên trong ứng dụng như chỉ sé, tình trạng sức khỏe, v. e Nhiều lựa chọn bổ sung, hỗ trợ nhà phát triển làm việc với cơ sở dữ liệu được nhúng và trong bộ nhớ.
Dễ dàng truy cập cơ sở dữ liệu và các dịch vụ hàng đợi như MySQL, Oracle, MongoDB, Redis, ActiveMQ và các dịch vụ khác. e Tich hợp trơn tru với hệ sinh thái Spring. © Cộng đồng người sử dụng lớn với rất nhiều hướng dẫn, tạo điều kiện cho giai đoạn làm quen. Giới thiệu về các module Spring hỗ trợ kết nối dữ liệu từ database 1.
Khái niệm về JPA ĐỎ AN TOT NGHIỆP ĐẠI HỌC CHƯƠNG 1: CƠ SỞ LY THUYET JPA với tên đầy đủ là Java Persistence API là một tập interface giữa phần mềm java và cơ sở dữ liệu. Nó được dùng dé mô tả cách quản lý các mối quan hệ dữ liệu trong một phần mềm sử dụng Java Platform System. JPA cung cấp một mô hình Plain Old Java Object Persistence. Điều này cho phép ta ánh xạ các bảng hay các mỗi quan hệ giữa các bảng trong database sang các lớp hay các mối quan hệ giữa các object.
Giới thiệu về Hibernate Hibernate là một Object Relational Mapping framework. Hibernate chính là cài đặt cua JPA. Nhu đã nói phía trên, JPA là 1 tập các interface va Hibernate sé implements các interface đó một cách chi tiết, cu thé hơn. Nó cho phép lập trình viên thao tác với database một cách tự nhiên nhất bằng việc sử dụng thông qua các object.
Lập trình viên có thê không cần quan tâm đến loại database được sử dụng.ay nói cách khác. Spring data jpa Spring data jpa là một module con trong Spring data. Nó có mục đích giúp implement JPA trở nên dé dang hơn, giảm thiêu việc thực hiện quá nhiều bước dé có thé implement được JPA. nhờ đó, Spring data jpa đã giúp cho việc tạo lên một ứng dụng Spring trở nên thuận tiện, thao tác với database một cách dễ dàng hơn.
Các method dé tương tác với database sẽ dé dang được custom ngay tại cách đặt tên hàm. Spring sẽ thực hiện implement chúng một cách tự động. ErudRepository PagingAndSortingRepasitory JPA Mongo Java Driver lh&C RDBMS MongeDs Neodj Hình 1. Kiễn trúc Spring Data 1.
Giới thiệu về thymeleaf 1. Giới thiệu về thymeleaf ĐỎ AN TOT NGHIỆP ĐẠI HỌC CHƯƠNG 1: CƠ SỞ LY THUYET A Thymeleaf là một Java template engine được dùng dé xử lý va tạo HTML, XML, Javascript, CSS và text. Mục tiêu chính của thymeleaf là mang lại các template đồng nhất mà đơn giản (nature templates) cho công việc phát triển website trở nên dễ dang hơn. Thymeleaf là một công cụ có nhiều ưu điểm.
Với thymeleaf, chỉ cần sử dụng file HTML, ta có thể hiển thi tat cả mọi thứ mà không cần các định dạng khác (Vi dụ như jsp). Thymealeaf sẽ tham gia vào trong quá trình kiến tạo của các file HTML dưới dạng các thuộc tính trong các thẻ HTML. Do đó, ta không cần phải thêm bất kỳ thẻ non- HTML nào. Vì là HTML nên ta có thê xem các file view mà không cần khởi chạy server.
Thymeleaf còn hỗ trợ cơ chế cache. Nên nhờ đó, ta có thé cache dữ liệu hoặc custom dé hiển thị view khi có thay đổi mà không cần khởi đông lại server. So sánh Thymealeaf với JSP, JSF Như đã nhắc ở trên, thymeleaf là thuần HTML nên dé có thể hién thị dir liệu từ server nó sẽ dùng các thẻ html do thymeleaf cung cấp. Trong khi đó, file JSP có thé nhúng code java hiển thị dữ liệu bang JSTL.
Tuy nhiên việc nhúng code này nên hạn chế vì nó có thể phá vỡ kiến trúc MVC khiến View đồng thời là Controller và có thê có các vấn đề về bảo mật. Về JSF, nó được định nghĩa các component (đã bao gồm cả javascription trong đó) dé hién thị. Mỗi loại trên đều có ưu nhược điểm riêng của mình nên rất khó đề có thê nói đâu là engine tốt nhất. Ví dụ với JSP, dù đã cũ nhưng việc người ta có thể kết hợp thêm Apache Tiles dé tao template là một điểm cộng.
Trong khi đó, với JSF thì đã có sẵn các component nên tiết kiệm rất nhiều thời gian trong quá trình lập trình nhưng lại khó tuỳ biến theo nhu cầu. Không kém cạnh, Thymeleaf — là một công cụ mới — được lòng các lập trình viên nhờ vào việc nó rất dé sử dụng vì chỉ dùng file HTML. ĐỎ AN TOT NGHIỆP ĐẠI HỌC CHƯƠNG 1: CƠ SỞ LY THUYET 1. Giới thiệu về MySQL 1.
Khái niệm MySQL MySQL là một hệ thống quản tri cơ sở dữ liệu mã nguồn mở (Relational Database Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server. RDBMS là một phần mềm hay dịch vụ dùng dé tao và quan ly các cơ sở dit liệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng. MySQL là một trong số các phan mềm RDBMS. RDBMS và MySQL thường được cho là một vì độ phô biến quá lớn của MySQL.
Các ứng dụng web lớn nhất như Facebook, Twitter, YouTube, Google, va Yahoo! déu dùng MySQL cho mục đích lưu trữ dữ liệu. Ké cả khi ban đầu nó chỉ được dùng rất hạn chế nhưng giờ nó đã tương thích với nhiều hạ tầng máy tính quan trọng như Linux, macOS, Microsoft Windows, và Ubuntu. Và nội dung của kiến trúc REST bao gồm bốn nguyên tắc cơ bản sau: 1. Quy trình hoạt động Một máy client sẽ liên lạc với máy server trong một mạng nhất định.
Mỗi client có thể gửi một request từ giao diện người dùng (Graphical user interface — GUD trên màn hình, và server sẽ trả về kết quả như mong muốn. Miễn là cả hai hiểu nhau. Cách vận hành chính trong môi trường MySQL cũng như vậy: Bước 1: MySQL tạo ra bảng dé lưu trữ dữ liệu, định nghĩa sự liên quan giữa các bảng đó. Bước 2: Client sẽ gửi yêu cầu SQL bằng một lệnh đặc biệt trên MySQL.
Bước 3: Ứng dụng trên server sẽ phản hồi thông tin và trả về kết quả trên máy client. Giới thiệu về Docker Docker là một nền tang dé cung cấp cách dé building, deploying va running ứng dụng dé dang hon bang cách sử dung các containers (trên nền tang ảo hóa). Ban đầu viết băng Python, hiện tại đã chuyển sang Golang. Các containers cho phép lập trình viên đóng gói một ứng dụng với tất cả các phần cần thiết, chăng hạn như thư viện và các phụ thuộc khác, và gói tất cả ra dưới dạng một package.
Bằng cách đó, nhờ vào container, ứng dụng sẽ chạy trên mọi máy Linux khác bat kể mọi cài đặt tùy chỉnh mà máy có thé có khác với máy được sử dụng để viết code. Theo một cách nào đó, Docker khá giống virtual machine. Nhưng tại sao Docker lại phát triển, phổ biến nhanh chóng? Đây là những nguyên nhân: ĐỎ AN TOT NGHIỆP ĐẠI HỌC CHƯƠNG 1: CƠ SỞ LY THUYET Tính dễ ứng dụng: Docker rất dễ cho mọi người sử dụng từ lập trình viên, sys admin. nó tận dụng lợi thế của container để build, test nhanh chóng.
Có thể đóng gói ứng dụng trên laptop của họ và chạy trên public cloud, private cloud. Câu than chú là “Build once, run anywhere”. Téc độ: Docker container rất nhẹ và nhanh, bạn có thé tao va chạy docker container trong vài giây. Môi trường chạy và khả năng mở rộng: Bạn có thê chia nhỏ những chức năng của ứng dụng thành các container riêng lẻ.
Ví dụng Database chạy trên một container và Redis cache có thể chạy trên một container khác trong khi ứng dụng Node.Js lại chạy trên một cái khác nữa. Với Docker, rất dé dé liên kết các container với nhau dé tạo thành một ứng dụng, làm cho nó dễ dàng scale, update các thành phần độc lập với nhau. Kết luận chương 1 Chương | của đồ án đã giới thiệu sơ lược được các công nghệ mà hệ thông website sử dụng từ đó giúp cho mọi người có cái nhìn tổng quan về hệ thống. Các kết quả của chương 1 sẽ là cơ sở và tiền dé để xây dựng, phát triển và đi sâu hơn nữa vào hệ thống trong các chương tiếp theo.
Trong chương 2 của đồ án, chúng ta sẽ đi sâu hơn vào các phân tích thiết kế chỉ tiết của hệ thống. DO AN TOT NGHIỆP ĐẠI HỌC CHƯƠNG 2: THIẾT KE HE THONG CHUONG 2: PHAN TÍCH, THIET KE HE THONG 2. Khảo sát thực tế Hiện nay, việc khám chữa bệnh tại các bệnh viện công và các viện tư nhân vừa và nhỏ đang gặp nhiều khó khăn. Bệnh nhân phải xếp hàng dài và đợi rất lâu để đến lượt.
Điều này không chỉ khiễn người bệnh mệt mỏi mà còn trở nên nguy hiểm trong tình hình đại dịch Covid 19 đang dién biến phức tạp như hiện nay. Không chi vậy, các nhà thuốc của bệnh viện vì được tin tưởng nên cũng thu hút được rất nhiều ngwoi. Diéu nay cũng đồng nghĩa với tình trang tắc nghẽn xếp hang dai dé chờ đến lượt giống như việc đăng ký khám chữa bệnh. Dù có nhiều bất cập như vậy nhưng hiện nay các bệnh viện, phòng khám này hầu hết đều không có hệ thống giải pháp giúp hỡ trợ giải quyết các van đề trên.
Các van đề và giải pháp 2.