Chương 1 CƠ SỞ LÝ THUYẾT 1. Ngôn ngữ lập trình Java 1. Java là gì? Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành Bytecode, Bytecode sau đó sẽ được môi trường thực thi (Runtime Environment) chạy.
Cú pháp Java được vay mượn nhiều từ C và C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn. Lỗi! Không tìm thấy nguồn tham chiếu. Lịch sử phát triển Java được khởi đầu bởi James - Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991.
Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi) do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này. Java được phát hành vào năm 1994. Sau khi Oracle mua lại công ty Sun Microsystems năm 2009 - 2010, Oracle đã mô tả họ là "người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch". Lịch sử phiên bản java: − JDK 1.2 (Playground) 08 tháng 12, 1998 − J2SE 1.3 (Kestrel) 08 tháng 5, 2000 − J2SE 1.0 (Merlin) 06 tháng 02, 2002 − J2SE 5 (1.0) (Tiger) 30 tháng 9, 2004 − Java SE 6 (còn gọi là Mustang), được công bố 11 tháng 12 năm 2006.
− Java SE 7 (còn gọi là Dolphin), được bắt đầu từ tháng 8 năm 2006 và công bố ngày 28 tháng 7 năm 2011. − Java SE 8 ngày 18 tháng 3 năm 2014 − Java SE 9 ngày 21 tháng 9 năm 2017 − Java SE 10 ngày 20 tháng 3 năm 2018 − Java SE 11 ngày 25 tháng 9 năm 2018 − Java SE 12 ngày 19 tháng 3 năm 2019 SVTH: Phạm Văn Đông 1 Hệ thống website hỗ trợ chấm công cho doanh nghiệp − Java SE 13 ngày 17 tháng 9 năm 2019 − Java SE 14 ngày 17 tháng 3 năm 2020 − Java SE 15 ngày 15 tháng 9 năm 2020 − Java SE 16 ngày 16 tháng 3 năm 2021 − Java SE 17 ngày 14 tháng 9 năm 2021 1. Đôi nét về lịch sử Vào năm 2002, Spring Framework phát hành phiên bản đầu tiên bởi Rod Johnson. Việc xây dựng các ứng dụng doanh nghiệp trở nên đơn giản và dễ dàng hơn.
Rod Johnson đã cho xuất bản một cuốn sách được phổ biến rộng rãi có nhan đề "J2EE Development without EJB". Điều này đã cho Spring Framework rất nhiều động lực để thay thế EJB.[2] Ngày nay, Spring đã trở thành framework mã nguồn mở phổ biến nhất để xây dựng các ứng dụng doanh nghiệp. Cách tiếp cận thực tế ban đầu của Rod Johnson tiếp tục được phát triển và hướng tới một bộ công cụ hoàn chỉnh dành cho xây dựng các ứng dụng doanh nghiệp. Theo một số nguồn, trên 50% các ứng dụng web Java hiện nay đang sử dụng Spring Framework.
Để ngăn chặn sự phức tạp trong phát triển các ứng dụng, Spring Framework thường dựa trên các quan điểm như sau: − Đơn giản hóa công việc phát triển thông qua việc sử dụng các đối tượng Java đơn giản hay còn được gọi là POJO (Plain Old Java Object). − Nới lỏng ràng buộc giữa các thành phần thông qua việc sử dụng Dependency Injection và viết các interface. − Tiếp cận lập trình khai báo bằng cách sử dụng các quy tắc (convention) và các khía cạnh (aspect) chung. − Giảm thiểu các mã nghi thức và soạn sẵn (boilerplate) thông qua việc sử dụng các khuôn mẫu (template) và các khía cạnh.
Tổng quan về Spring − Spring Core: Spring Core chính là thành phần trung tâm, cốt lõi của Spring Framework. Đây chính là nền tảng để xây dựng nên các thành phần khác. − Spring Bean: Spring Bean là trung tâm của Spring Core và là trái tim của một ứng dụng Spring. − Dependency Injection (DI): Dependency Injection (có thể dịch tiêm các thành phần phụ thuộc) là một sức mạnh nổi bật của Spring Framework.
SVTH: Phạm Văn Đông 2 Hệ thống website hỗ trợ chấm công cho doanh nghiệp − Spring Context: Spring Context mang mọi thứ lại với nhau. − Spring Expression Language (SpEL): Spring Expression Language là một ngôn ngữ ngắn gọn giúp cho việc cấu hình Spring Framework trở nên linh hoạt hơn. − Các dự án trong Spring Framework: Spring Framework là một tập hợp của nhiều dự án con. − Spring MVC: Spring MVC được thiết kế dành cho việc xây dựng các ứng dụng nền tảng web.
− Spring Data: Cung cấp một cách tiếp cận đúng đắn để truy cập dữ liệu từ cơ sở dữ liệu quan hệ, phi quan hệ, map-reduce, … − Spring Security: Dự án này cung cấp các cơ chế xác thực (authentication) và phân quyền (authorization) cho ứng dụng. − Spring Boot: là một framework giúp phát triển cũng như chạy ứng dụng một cách nhanh chóng. − Spring Batch: tạo các lịch trình (scheduling) và tiến trình (processing). − Spring Integration: là một implementation của Enterprise Integration Patterns (EIP).
− Spring XD: đơn giản hóa công việc phát triển các ứng dụng Big Data. − Spring Social: kết nối ứng dụng của bạn với các API bên thứ ba của Facebook, Twitter, Linkedin, .1: Mô hình Spring Framework Runtime SVTH: Phạm Văn Đông 3 Hệ thống website hỗ trợ chấm công cho doanh nghiệp 1. RestfulAPI (RestController Spring Boot) Khác với @Controller là sẽ trả về một template. @RestController trả về dữ liệu dưới dạng JSON.
Các đối tượng trả về dưới dạng Object sẽ được Spring Boot chuyển thành JSON. Các đối tượng trả về rất đa dạng, bạn có thể trả về List, Map, … Spring Boot sẽ convert hết chúng thành JSON, mặc định sẽ dùng Jackson converter để làm điều đó. Nếu bạn muốn API tùy biến được kiểu dữ liệu trả về, bạn có thể trả về đối tượng ResponseEntity của Spring cung cấp. Đây là đối tượng cha của mọi response và sẽ wrapper các object trả về.
Vì xây dựng API, nên các thông tin từ phía Client gửi lên Server sẽ nằm trong Body, và cũng dưới dạng JSON luôn. Tất nhiên là Spring Boot sẽ làm giúp chúng ta các phần nặng nhọc, nó chuyển chuỗi JSON trong request thành một Object Java. bạn chỉ cần cho nó biết cần chuyển JSON thành Object nào bằng Annotation @RequestBody. Ngoài thông tin trong Body của request, thì cái chúng ta cần chính là cái con số 12 nằm trong URL.
Phải lấy được con số đó thì mới biết được đối tượng To-do cần thao tác là gì. Lúc đó Anotation @PathVariable tham chiến. Tổng quan về Hệ quản trị cơ sở dữ liệu PostgreSql PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ và đối tượng. Nó là một hệ quản trị cơ sở dữ liệu miễn phí (open source) phổ biến nhất hiện nay.
Với hơn 30 năm phát triển mạnh mẽ nó đã đạt được độ tin cậy cao, tính năng mạnh mẽ và hiệu suất cao. Cơ sở dữ liệu PostgreSQL là một hệ thống quản lý dữ liệu nguồn mở cấp doanh nghiệp. Nó hỗ trợ cả SQL cho quan hệ và JSON cho các truy vấn không liên quan. Nó được hỗ trợ bởi một cộng đồng các nhà phát triển có kinh nghiệm, những người đã đóng góp to lớn để làm cho nó trở thành hệ thống DBMS có độ tin cậy cao.
Bootstrap và Responsive Bootstrap là front-end framework, là một bộ sưu tập miễn phí các công cụ để tạo ra các trang web và các ứng dụng web. Bootstrap bao gồm HTML và CSS dựa trên các mẫu thiết kế cho kiểu chữ, hình thức, các button và các thành phần giao diện khác, cũng như mở rộng tùy chọn JavaScript. Boostrap định nghĩa sẵn các class CSS giúp người thiết kế giao diện website tiết kiệm rất nhiều thời gian. Các thư viện Bootstrap có những đoạn mã sẵn sàng cho chúng ta áp dùng vào website của mình mà không phải tốn quá nhiều thời gian để tự viết.
Với Bootstrap, việc phát triển giao diện website để phù hợp với đa thiết bị trở nên dễ dàng hơn bao giờ hết. Bootstrap cung cấp tính năng responsive và mobile first, nghĩa là làm cho trang web có thể tự co giãn để tương thích với mọi thiết SVTH: Phạm Văn Đông 4 Hệ thống website hỗ trợ chấm công cho doanh nghiệp bị khác nhau, từ điện thoại di động đến máy tính bảng, máy tính xách tay, máy tính để bàn,. Một khía cạnh khác là responsive web design làm cho trang web cung cấp được trải nghiệm tuyệt vời cho người dùng trên nhiều thiết bị, kích thước màn hình khác nhau. Một trang có thể hoạt động tốt bất kể sự biến đổi sẽ cung cấp một trải nghiệm người dùng tốt và nhất quán hơn một trang được thiết kế cho một loại thiết bị và kích thước màn hình cụ thể.
Javascript và ReactJs 1. Javascript JavaScript là ngôn ngữ lập trình được nhà phát triển sử dụng để tạo trang web tương tác. Từ làm mới bảng tin trên trang mạng xã hội đến hiển thị hình ảnh động và bản đồ tương tác, các chức năng của JavaScript có thể cải thiện trải nghiệm người dùng của trang web. Là ngôn ngữ kịch bản phía máy khách, JavaScript là một trong những công nghệ cốt lõi của World Wide Web.
Ví dụ: khi duyệt internet, bất cứ khi nào bạn thấy quảng cáo quay vòng dạng hình ảnh, menu thả xuống nhấp để hiển thị hoặc màu sắc phần tử thay đổi động trên trang web cũng chính là lúc bạn thấy các hiệu ứng của JavaScript. Trước đây, các trang web có dạng tĩnh, tương tự như các trang trong một cuốn sách. Một trang tĩnh chủ yếu hiển thị thông tin theo một bố cục cố định và không làm được mọi thứ mà chúng ta mong đợi như ở một trang web hiện đại. JavaScript dần được biết đến như một công nghệ phía trình duyệt để làm cho các ứng dụng web linh hoạt hơn.
Sử dụng JavaScript, các trình duyệt có thể phản hồi tương tác của người dùng và thay đổi bố cục của nội dung trên trang web. Khi ngôn ngữ này phát triển hoàn thiện, các nhà phát triển JavaScript đã thiết lập các thư viện, khung và cách thức lập trình cũng như bắt đầu sử dụng ngôn ngữ này bên ngoài trình duyệt web. Ngày nay, bạn có thể sử dụng JavaScript để thực hiện hoạt động phát triển cả ở phía máy khách và máy chủ. Ngôn ngữ lập trình Python 1.
Python Python là một ngôn ngữ lập trình bậc cao được tạo ra bởi Guido van Rossum và ra mắt lần đầu vào năm 1991. Được thiết kế với ưu điểm dễ đọc, dễ học và dễ nhớ, Python được sử dụng rộng rãi trong nhiều mục đích lập trình, đặc biệt là trong phát triển trí tuệ nhân tạo.