Chương 1: Tìm hiểu về framework Chương 2: Phân tích và thiết kế hệ thống Chương 3: Xây dựng ứng dụng minh họa Chương 4: Kết luận và đánh giá 4 document, khoa luan16 of 98. tai lieu, luan van17 of 98. CHƢƠNG 1: TÌM HIỂU VỀ FRAMEWORK 1. Tìm hiểu Spring Framework 1.
Khái Niệm Spring là framework phát triển ứng dụng phổ biến nhất dành cho Java Enterprise. Ban đầu nó được viết bởi Rod Johnson và lần đầu tiên được phát hành theo giấy phép Apache 2.0 vào tháng 6 năm 2003. Spring có kích thướng nhẹ, phiên bản cơ bản của Spring framework có kích thước khoảng 2MB. Được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming.
Là một Java Platform mã nguồn mở, một giải pháp gọn nhẹ dành cho Java Enterprise. Với Spring Framework các nhà phát triển có thể tạo ra các mã có hiệu suất cao, dễ kiểm thử và có thể sử dụng lại được. Không chỉ giúp chúng ta phát triển web mà spring framework nó còn là 1 hệ sinh thái phát triển rất nhiều nền tảng khác như cloud, mobile, app. vì nó dạng tích hợp, nhúng vô là xài.
Lợi ích Spring cho phép lập trình viên sử dụng POJO. Việc sử dụng POJO 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.
5 document, khoa luan17 of 98. tai lieu, luan van18 of 98. 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. Cài đặt Spring framework Yêu cầu đã cài đặt: Bộ phát triển Java (JDK).
Thiết lập Apache Tomcat. Thiết lập Eclipse (IDE). Thiết lập thư viện Spring Sau đây là các bước đơn giản để tải xuống và cài đặt thư viện Spring framework trên máy của bạn. Bạn cần phải tải bản .zip cho Windows và .tz cho Unix.
Tải xuống phiên bản Spring mới nhất từ https://repo.io/release/org/springframework/spring/ Các bài hướng dẫn trên viettuts.vn sử dụng phiên bản Spring 5.RELEASE trên Windows. Sau khi đã tải xuống tệp tin đã giải nén, nó sẽ tạo cấu trúc thư mục bên trong \lib\. Tiếp theo là bạn phải chọn ra những gì cần sử dụng và thêm vào CLASSPATH cho project của bạn. 6 document, khoa luan18 of 98.
tai lieu, luan van19 of 98. Dưới đây là một số ví dụ bộ thư viện phát triển ứng dụng Spring Web: spring-aop-5.RELEASE spring-aspects-5.RELEASE spring-beans-5.RELEASE spring-context-5.RELEASE spring-context-support-5.RELEASE spring-core-5.RELEASE spring-instrument-5.RELEASE spring-jdbc-5.RELEASE spring-messaging-5.RELEASE spring-orm-5.RELEASE spring-oxm-5.RELEASE spring-web-5.RELEASE spring-webmvc-5. Kiến trúc, các module của Spring Framework 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 đó. 7 document, khoa luan19 of 98.
tai lieu, luan van20 of 98.1: Kiến trúc Spring framework 1. Module spring-core IoC(Inversion of Control) container được xem là cốt lõi của Spring Framework, giúp lập trình viên quản lý quá trình thực thi DI (Dependency Injection) trong ứng dụng một cách tự động. Spring IoC Container là một chương trình (một module trong spring framework) đảm nhiệm việc Inject sự phụ thuộc (dependencies) vào các đối tượng. 8 document, khoa luan20 of 98.
tai lieu, luan van21 of 98.2 : Spring IOC container 1. Module Spring Bean Đối tượng được quản lý bởi Spring IoC container. Định nghĩa của bean bao gồm các thông tin được gọi là cấu hình siêu dữ liệu (configuration metadata). Spring BeanFactory Container.
Container đơn giản cung cấp những hỗ trợ cơ bản cho for DI và được định nghĩa bởi interface org. Lớp XmlBeanFactory implements BeanFactory.Container này sẽ đọc cấu hình từ file XML và sử dụng nó để tạo cấu hình cho hệ thống hoặc ứng dụng. The BeanFactory thường thích hợp sử dụng ở nơi mà tài nguyên bị giới hạn như trên thiết bị di động. 9 document, khoa luan21 of 98.
tai lieu, luan van22 of 98. Module spring-context Xây dựng trên một nền tảng vững chắc được cung cấp bởi các module Core và Beans, được sử dụng để truy cập vào các đối tượng trong framework-style tương tự như việc đăng ký một JNDI. ApplicationContext Các lớp thực thi ApplicationContext: - FileSystemXmlApplicationContext: Container này tải các định nghĩa của bean từ file XML. Cần cung cấp đầy đủ đường dẫn của file XML cấu hình bean đến constructor.
- ClassPathXmlApplicationContext: Container này tải các định nghĩa của bean từ file XML. Cần cung cấp đầy đủ đường dẫn của file XML, cần set đúng CLASSPATH vì container này sẽ tìm kiếm file XML cấu hình trong CLASSPATH. - WebXmlApplicationContext: Container này sẽ tải file XML định nghĩa các bean trong ứng dụng web. 10 document, khoa luan22 of 98.
tai lieu, luan van23 of 98. Module spring-expression Cung cấp một Expression Language mạnh mẽ cho việc truy vấn và tính toán một đồ thị đối tượng lúc runtime. Nó được kế thừa và mở rộng từ unified expression language.Ngôn ngữ này hỗ trợ setting và getting giá trị các property, gọi phương thức, truy cập vào nội dung của mảng, tập hợp và chỉ mục, operator logic và tính toán, đặt tên biến, và truy xuất các đối tượng theo tên từ IoC container của Spring. Data Access/Integration 1.
Module spring-jdbc Cung cấp một lớp JDBC-abstraction để loại bỏ những code tẻ nhạt cả JDBC và phân tích những mã lỗi cụ thể của database-vendor. Module spring-orm Cung cấp lớp tích hợp với các orm API phổ biến như JPA, JDO và Hibernate. Module spring-oxm Cung cấp lớp abstraction hỗ trợ triển khai Object/XML mapping như AXB, Castor, XMLBeans, JiBX and XStream. Module spring-jms Chứa các tính năng tạo và sử dụng các message.
Từ Spring Framework 4.1, nó được tích hợp với spring-messaging. Module spring-transaction 11 document, khoa luan23 of 98. tai lieu, luan van24 of 98. Hỗ trợ quản lý giao dịch theo chương trình và khai báo cho các lớp mà thực hiện các giao diện đặc biệt và cho tất cả các POJO của bạn.
Module spring-web Cung cấp tính năng tích hợp web theo định hướng cơ bản như chức năng tập tin tải lên nhiều phần dữ liệu và khởi tạo các container IoC sử dụng nghe servlet và một bối cảnh ứng dụng web theo định hướng. Module spring-webmvc Bao gồm việc triển khai Model-View-Controller (MVC) của Spring cho các ứng dụng web. Module spring-websocket Cung cấp hỗ trợ cho WebSocket-based, giao tiếp hai chiều giữa client và server trong các ứng dụng web. Module springwebmvc-portlet Cung cấp việc triển khai MVC được sử dụng trong môi trường portlet và ánh xạ chức năng của module Web-Servlet.
Module AOP Cung cấp một thực hiện lập trình hướng khía cạnh cho phép bạn xác định phương pháp-chặn và pointcuts để sạch tách mã thực hiện chức năng đó nên được tách ra. Module Aspects 12 document, khoa luan24 of 98. tai lieu, luan van25 of 98. Cung cấp tích hợp với AspectJ, mà lại là một khuôn khổ AOP mạnh mẽ và trưởng thành.
Module Instrumentation cung cấp thiết bị đo đạc lớp hỗ trợ và triển khai lớp bộ nạp được sử dụng trong các máy chủ ứng dụng nhất định. Module Messaging Cung cấp hỗ trợ cho STOMP như WebSocket sub-protocol để sử dụng trong các ứng dụng. Nó cũng hỗ trợ một mô hình lập trình chú thích cho việc định tuyến và xử lý tin nhắn STOMP từ các máy khách WebSocket. Module Test Hỗ trợ việc kiểm tra các thành phần mùa xuân với JUnit hoặc TestNG khuôn khổ.
Các dự án trong Spring Framework Trên thực tế Spring Framework là một tập hợp của nhiều dự án con. Spring Core như chúng ta đã tìm hiểu là nền tảng của các dự án trong Spring Framework. Một một dự án sẽ đảm nhận một chức năng riêng trong việc xây dựng các ứng dụng doanh nghiệp. Chúng ta sẽ cùng điểm qua các dự án lớn trong Spring.
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. Đây là một dự án chúng ta không thể bỏ qua khi xây dựng các ứng dụng Java web. 13 document, khoa luan25 of 98. tai lieu, luan van26 of 98.
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 của bạn. Spring Boot Spring Boot là một framework giúp chúng ta phát triển cũng như chạy ứng dụng một cách nhanh chóng. Spring Batch Dự án này giúp chúng ta dễ dàng tạo các lịch trình (scheduling) và tiến trình (processing) cho các công việc xử lý theo mẻ (batch job). Spring Integration Spring Integration là một implementation của Enterprise Integration Patterns (EIP).
Dự án này thiết kế một kiến trúc hướng thông điệp hỗ trợ việc tích hợp các hệ thống bên ngoài. Spring Social Dự án này sẽ 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. Giới thiệu 14 document, khoa luan26 of 98. tai lieu, luan van27 of 98.
Reactjs là một thư viện Javascript đang nổi lên trong những năm gần đây với xu hướng Single Page Application (SPA). Trong khi những framework khác cố gắng hướng đến một mô hình MVC hoàn thiện thì React nổi bật với sự đơn giản và dễ dàng phối hợp với những thư viện Javascript khác. Nếu như AngularJS là một Framework cho phép nhúng code javascript trong code html thông qua các attribute như ng-model, ng-repeat.thì với react là một thư viện cho phép nhúng code HTML trong code javascript nhờ vào JSX, bạn có thể dễ dàng lồng các đoạn HTML vào trong JS. Tích hợp giữa javascript và HTML vào trong JSX làm cho các component dễ hiểu hơn.
ReactJS là gì? React là một thư viện UI phát triển tại Facebook để hỗ trợ việc xây dựng những thành phần (components) UI có tính tương tác cao, có trạng thái và có thể sử dụng lại được. React được sử dụng tại Facebook trong production, và instagram được viết hoàn toàn trên React. Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau. React so sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM.
Trước khi đến cài đặt và cấu hình, chúng ta sẽ đi đến một số khái niệm cơ bản: 1. Virtual DOM Công nghệ DOM ảo giúp tăng hiệu năng cho ứng dụng. Việc chỉ node gốc mới có trạng thái và khi nó thay đổi sẽ tái cấu trúc lại toàn bộ, đồng nghĩa với việc DOM tree cũng sẽ phải thay đổi một phần, điều này sẽ ảnh hưởng đến tốc độ xử lý. React JS sử dụng Virtual DOM (DOM ảo) để cải thiện vấn đề 15 document, khoa luan27 of 98.