1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO MÔN HỌC CÔNG NGHỆ PHẦN MỀM đề tài spring framework

16 23 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 371,4 KB

Nội dung

ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC CÔNG NGHỆ PHẦN MỀM Đề tài: Spring Framework GIẢNG VIÊN PHỤ TRÁCH: PGS TS Nguyễn Thanh Bình LỚP HỌC PHẦN: 18.11 NHĨM Nguyễn Tiến Dũng Đặng Trung Nguyên Phan Thế Hòa Nguyễn Lê Thiên Như Đà Nẵng, tháng 02/2021 Báo cáo môn học Cơng nghệ phần mềm MỤC LỤC DANH MỤC HÌNH ẢNH Hình Logo Spring Hình Dependency Injection Hình Minh họa Lập trình hướng khía cạnh Hình Các module Spring Hình Cấu trúc Spring Boot Hình Luồng xử lí request Spring Boot Hình Cấu trúc Spring MVC Hình Luồng xử lý request Spring MVC Nhóm – Spring Framework Báo cáo môn học Công nghệ phần mềm GIỚI THIỆU CHUNG VỀ SPRING FRAMEWORK Tổng quan Spring framework mã nguồn Phát triển Pivotal Software mở phổ biến để xây dựng ứng dụng doanh nghiệp (Java Phát hành lần đầu 1/10/2002 Enterprise) Với Spring, nhà phát triển tạo Phiên mã có hiệu suất 5.3.4 cao, dễ kiểm thử sử dụng lại Ngơn ngữ Java Các tính core Spring Framework sử dụng Nền tảng Java EE việc phát triển ứng dụng Java xây dựng ứng dụng web tảng Java EE (Java Enterprise Edition) Spring nhẹ suốt (nhẹ: kích thước nhỏ, version khoảng 2MB; suốt: hoạt động cách suốt với lập trình viên) Hình Logo Spring Lịch sử đời 2.1 EJB Spring Có thể nói Spring Framework đời nhờ thành công EJB EJB (Enterprise JavaBeans) kiến trúc phát triển dành cho ứng dụng doanh nghiệp địi hỏi tính mạnh mẽ khả mở rộng cao EJB thành phần quan trọng tảng Java EE EJB tạo hai gã khổng lồ công nghệ IBM Sun vào năm cuối thập niên 90 Dưới phát triển hai tập đoàn này, EJB trở nên nặng nề Tiêu chuẩn EJB nhanh chóng thông qua Sau tất cả, EJB ca ngợi giải pháp tốt để xây dựng ứng dụng phân tán dành cho doanh nghiệp Nhưng trích chi tiết kỹ thuật EJB tăng nhanh cịn tiếng EJB framework lớn với độ phức tạp cao Các nhà phát triền làm việc với EJB nhận khơng hoạt động đề EJB tuyệt vời bàn giấy, thực tế lại chuyện khác Nhóm – Spring Framework Báo cáo mơn học Công nghệ phần mềm EJB tiếp tục phát triển, dễ sử dụng nhiều so với buổi ban đầu Nhưng trích cịn đó, nỗi thất vọng cộng đồng Java ngày tăng lên, đòi hỏi cần có giải pháp thay 2.2 Sự đời Spring Vào năm 2002, Spring Framework phát hành phiên Rod Johnson Việc xây dựng ứng dụng doanh nghiệp trở nên đơn giản dễ dàng Rod Johnson cho xuất sách phổ biến rộng rãi có nhan đề "J2EE Development without EJB" Điều cho Spring Framework nhiều động lực để thay EJB Theo đà phát triển đó, Spring trở thành framework mã nguồn mở phổ biến để xây dựng ứng dụng doanh nghiệp Cách tiếp cận thực tế ban đầu Rod Johnson tiếp tục phát triển hướng tới cơng cụ hồn chỉnh dành cho xây dựng ứng dụng doanh nghiệp Theo số nguồn, 50% ứng dụng web Java sử dụng Spring CÁC KHÁI NIỆM ĐẶC TRƯNG Spring Framework phát triển dựa quan điểm sau: Đơn giản hóa cơng việc phát triển o Thơng qua việc sử dụng đối tượng Java túy, hay POJO (Plain Old Java Object) o Trong Java, POJO thường dùng để object Java bình thường, khơng theo theo mơ hình, quy ước, hay nói theo cách khác class object không implement hay extend class khác; bao gồm thuộc tính phương thức Nới lỏng ràng buộc thành phần thông qua Dependency Injection 3.1 Dependency Dependency loại quan hệ class, class hoạt động độc lập class lại phụ thuộc vào class 3.2 Dependency Injection Dependency Injection (DI) kỹ thuật lập trình giúp tách class độc lập với biến phụ thuộc 3.2.1 o o o Nhiệm vụ Dependency Injection Tạo object Biết class cần object Cung cấp cho class object chúng cần Nhóm – Spring Framework Báo cáo môn học Công nghệ phần mềm Bằng cách này, tương lai object có thay đổi DI có nhiệm vụ cấp lại object cần thiết cho class Hình Dependency Injection 3.2.2 Ưu điểm o Giúp viết Unit test dễ dàng o Giảm thiểu đc boilerplate code việc khởi tạo dependency đc làm component khác o Mở dụng dự án dễ dàng o Giúp ích việc liên kết lỏng (loose coupling) thành phần dự án 3.2.3 Nhược điểm o Khá phức tạp để học dùng q đà dẫn tới số vấn đề khác o Rất nhiều lỗi compile time bị đẩy sang runtime o Có thể làm ảnh hưởng tới chức auto-complete hay Find references số IDE Nhóm – Spring Framework Báo cáo môn học Công nghệ phần mềm Tiếp cận lập trình khai báo cách sử dụng quy tắc (convention) khía cạnh (aspect) chung o Lập trình khai báo (declarative programming) mẫu hình lập trình theo phong cách xây dựng cấu trúc yếu tố chương trình máy tính để thể tính logic tính tốn mà khơng mơ tả luồng điều khiển o Coding conventions tập hợp nguyên tắc chung lập trình nhằm làm cho code dễ đọc, dễ hiểu, dễ quản lý, bảo trì o Aspect Oriented Programming (AOP) – lập trình hướng khía cạnh: kỹ thuật lập trình nhằm phân tách chương trình thành cách moudule riêng rẽ, phân biệt, không phụ thuộc o Khi hoạt động, chương trình kết hợp module lại để thực chức sửa đổi chức cần sửa module o AOP cho phép thêm vào ứng dụng tồn đoạn code xử lý mà chỉnh sửa code ứng dụng o AOP dùng để thay OOP mà để bổ sung cho OOP  AOP khắc phục hạn chế tăng hiệu OOP (Object Oriented Programming) Trong OOP cịn nhiều thiếu sót chẳng hạn khó tạo ứng dụng khó, phức tạp AOP đời bổ sung cho OOP Tuy vậy, AOP để thay hẳn OOP  Với AOP, khả tái sử dụng mã nguồn tăng cường tối đa  Trong AOP, module làm việc module đó, đảm bảo tính Đơn nhiệm (Single responsibility principle), giải vấn đề chéo mã nguồn (code tangling) dàn trải mã nguồn (code scattering) Do vậy, tính module hóa cao kiểu lập trình khác Nhóm – Spring Framework Báo cáo mơn học Cơng nghệ phần mềm Hình Minh họa Lập trình hướng khía cạnh Giảm thiểu mã nghi thức soạn sẵn (boilerplate) o Sử dụng template aspect Thường sử dụng phát triển hệ thống quy mô lớn CÁC MODULE CHÍNH CỦA SPRING FRAMEWORK Core Container Core container cung cấp chức Spring Thành phần Bean Factory, cài đặt Factory pattern BeanFactory áp dụng IoC pattern để đặc tả phụ thuộc từ code ứng dụng Spring Context/Application Context Spring context file cấu hình để cung cấp thông tin ngữ cảnh Spring Spring context cung cấp service JNDI access, EJB integration, e-mail, internalization, validation, scheduling functionality Cung cấp cách để truy cập đối tượng Spring AOP (Aspect-Oriented) Spring AOP module tích hợp chức lập trình hướng khía cạnh vào Spring framework thơng qua cấu hình Spring AOP module cung cấp dịch vụ quản lý giao dịch cho đối tượng ứng dụng sử dụng Spring Với Spring AOP tích hợp declarative transaction management vào ứng dụng mà không cần dựa vào EJB component Spring AOP module đưa lập trình Nhóm – Spring Framework Báo cáo môn học Công nghệ phần mềm metadata vào Spring Sử dụng thêm annotation vào source code để hướng dẫn Spring nơi làm để liên hệ với aspect Spring DAO Tầng JDBC DAO đưa phân cấp exception để quản lý kết nối đến database, điều khiển exception thông báo lỗi ném vendor database Tầng exception đơn giản điều khiển lỗi giảm khối lượng code mà cần viết mở đóng kết nối Module cung cấp dịch vụ quản lý giao dịch cho đối tượng ứng dụng Spring Spring ORM Spring tích hợp với vài ORM framework để cung cấp Object Relation tool bao gồm: JDO, Hibernate, OJB iBatis SQL Maps Spring Web module Nằm application context module, cung cấp context cho ứng dụng web Spring hỗ trợ tích hợp với Struts, JSF Webwork Web module làm giảm bớt công việc điều khiển nhiều request gắn tham số request vào đối tượng domain Spring MVC Framework MVC Framework cài đặt đầy đủ đặc tính MVC pattern để xây dựng ứng dụng Web MVC framework cấu hình thơng qua giao diện chứa số kỹ thuật view bao gồm: JSP, Velocity, Tiles generation of PDF Excel file Ngoài module spring cịn số module khác,dưới mơ hình đầy đủ 20 modules spring framework cho ứng dụng đầy đủ yêu cầu Nhóm – Spring Framework Báo cáo mơn học Cơng nghệ phần mềm Hình Các module Spring Nhóm – Spring Framework Báo cáo môn học Công nghệ phần mềm ƯU ĐIỂM & NHƯỢC ĐIỂM Ưu điểm o Sử dụng POJO (Plain Old Java Object), giúp phát triển ứng dụng Ngoài cịn giúp loại bỏ EJB thơng thường cách để người dùng sử dụng servlet container Tomcat Chính điều khiến Spring Framework trở thành khung phần mềm nhẹ o Tính linh hoạt để cấu hình Spring: Spring hỗ trợ sử dụng cấu hình XML lẫn Javabased annotations để cấu hình cho Spring Beans o Khơng cần Server: Spring framework cung cấp sức chứa nhẹ, điều kích hoạt mà khơng cần sử dụng web server hay server ứng dụng.\ o Sử dụng AOP Spring: Mơ đun Spring AOP mang lại vài lợi ích cho người phát triển Nó cho phép họ có nhiều loại đơn vị biên dịch khác trình tải lớp riêng biệt Đi việc sử dụng IoC để tiêm phụ thuộc phép khía cạnh cấu hình bình thường o Khơng cần tái tạo lại: Một lợi ích Spring Framework phát triển ứng dụng doanh nghiệp tận dụng từ Spring Spring sử dụng công nghệ JDK timers, ORM frameworks, JAVA EE… Vì nhà phát triển khơng cần phải học hết công nghệ hay frameworks để phát triển ứng dụng o Sử dụng tính Mơ đun: Spring Framework cung cấp tính mơ đun cho nhà phát triển Giúp họ chọn gói lớp thích hợp để sử dụng bỏ qua Với hàng ngàn gói lớp, đến lợi ích cho nhà phát triển để xác định chọn loại mà không gặp vấn đề o Dễ kiểm tra: Một tính Spring tiêm phụ thuộc giúp tăng cường khả kiểm tra Đơn giản hóa việc đưa liệu thử nghiệm dùng JavaBean POJO o Tính quán quản lý giao dịch: Spring Framework dễ dàng tăng giảm quy mơ giao dịch lân cận tồn cầu cách sử dụng JTA ĐÓ giao diện quản lý giao dịch quán o Khung web thiết kết tốt: Spring có thiết kế mơ hình MVC tốt để cung cấp giải pháp thay tuyệt vời cho khuôn khổ web kế thừa o Kiểm soát đảo ngược API’s: Spring Framework cung cấp đảo ngược kiểm soát APIs để dịch ngoại lệ ném JDBC, Hibernate ném thành ngoại lệ không kiểm tra quán Nhược điểm o Sự phức tạp Spring: Những lời trích mà Spring Framework nhận phức tạp thiếu tập trung rõ rang có 2400 lớp với 49 cơng cụ khác khiến nhà phát triển sử dụng phức tạp Nhóm – Spring Framework 10 Báo cáo môn học Công nghệ phần mềm o Đường cong học tập cao: Sẽ khó khăn cho người lập trình để học sử dụng Spring Framework Là phương pháp lập trình yêu cầu chi tiết phương pháp số chúng để phát triển ứng dụng o Nhiều chế song song: Nhiều phương án lựa chọn đưa gây nhiễu loạn, khó hiểu Cần nhiều am hiểu từ phía nhà phát triển để biết phương thức lớp nên dùng trường hợp cụ thể o Thiếu hướng dẫn, ngun tắc: Khơng có nhiều ngun tắc, hướng dẫn diễn đàn, trang chủ cho người dùng liệu Spring MỘT SỐ DỰ ÁN SPRING Spring Boot Đưa quan điểm kiến việc xây dựng ứng dụng Spring giúp bạn bắt đầu chạy nhanh Spring Data Cung cấp cách tiếp cận quán để truy cập liệu - quan hệ, không quan hệ, giảm đồ Spring Cloud Cung cấp công cụ cho mẫu phổ biến hệ thống phân tán Hữu ích cho việc xây dựng triển khai microservices Spring Security Bảo vệ ứng dụng bạn hỗ trợ xác thực, ủy quyền tồn diện mở rộng Spring Batch Đơn giản hóa tối ưu hóa cơng việc xử lý hoạt động hàng loạt khối lượng lớn Spring for Android Cung cấp thành phần Spring để sử dụng việc phát triển ứng dụng Android Spring Web Services Tạo điều kiện thuận lợi cho việc phát triển dịch vụ web SOAP theo hợp đồng Spring Mobile Đơn giản hóa phát triển ứng dụng web dành cho thiết bị di động thông qua tùy chọn phát thiết bị hiển thị liên tục Spring HATEOAS Đơn giản hóa việc tạo biểu diễn REST tuân theo nguyên tắc HATEOAS Nhóm – Spring Framework 11 Báo cáo môn học Công nghệ phần mềm 10 Spring Statemachine Cung cấp framework cho nhà phát triển ứng dụng sử dụng ý tưởng máy trạng thái với ứng dụng Spring Ngoài cịn có dự án khác như: Spring CredHub, Spring Flo, Spring for Apache Kafka, Spring LDAP, Spring AMQP, Spring Cloud Data Flow SPRING BOOT Spring Boot thuộc nhóm module Spring Framework, cung cấp tính RAD (Rapid Application Development) Spring Boot sử dụng để tạo ứng dụng độc lập dựa Spring mà bạn chạy Spring Boot khơng sinh code tất nhiên hồn tồn khơng có u cầu cấu hình XML nào, mà sử dụng quy ước mơ hình thiết kế phần mềm theo cấu hình, có nghĩa giảm tải cơng việc cho lập trình viên Đặc tính o o o o Tạo ứng dụng Spring độc lập Nhúng trực tiếp Tomcat, Jetty Undertow mà không cần triển khai tệp WAR Nó tự động cấu hình Spring Nó cung cấp tính sẵn sàng sản xuất số liệu, kiểm tra sức khoẻ cấu hình bên ngồi o Khơng tự sinh mã khơng u cầu cấu hình XML Cấu trúc Spring Boot Spring Boot tuân theo kiến trúc phân lớp, lớp giao tiếp với lớp bên bên (cấu trúc phân cấp) o Presentation Layer xử lý yêu cầu HTTP, dịch tham số JSON thành đối tượng xác thực yêu cầu chuyển đến lớp nghiệp vụ Nói tóm lại, bao gồm khung nhìn, tức phần giao diện người dùng o Business Layer xử lý tất logic nghiệp vụ Nó bao gồm lớp dịch vụ sử dụng dịch vụ cung cấp lớp truy cập liệu Nó thực ủy quyền xác nhận o Persistence Layer chứa tất logic lưu trữ dịch đối tượng nghiệp vụ từ sang hàng sở liệu o Database Layer: hoạt động CRUD (tạo, truy xuất, cập nhật, xóa) thực lớp Nhóm – Spring Framework 12 Báo cáo mơn học Cơng nghệ phần mềm Hình Cấu trúc Spring Boot Luồng xử lí request Spring Boot Hình Luồng xử lí request Spring Boot o Có lớp validator, lớp view lớp utility o Spring Boot sử dụng tất module Spring giống Spring MVC, Spring Data… Kiến trúc Spring Boot giống kiến trúc Nhóm – Spring Framework 13 Báo cáo môn học Công nghệ phần mềm o o o o o Spring MVC, ngoại trừ điều: không cần lớp DAO DAOImpl Spring boot Tạo lớp truy cập liệu thực hoạt động CRUD Máy khách thực yêu cầu HTTP (PUT GET) Yêu cầu chuyển đến điều khiển, điều khiển ánh xạ yêu cầu xử lý Sau đó, gọi logic dịch vụ yêu cầu Trong lớp dịch vụ, tất logic nghiệp vụ thực Nó thực logic liệu ánh xạ tới JPA với lớp mơ hình Một trang JSP trả lại cho người dùng khơng có lỗi xảy SPRING MVC Spring MVC o Spring MVC framework, hay dự án mã nguồn mở Spring o Spring MVC thiết kế dành cho việc xây dựng ứng dụng tảng web Đây dự án bỏ qua xây dựng ứng dụng javaweb o Spring MVC cung cấp kiến trúc MVC (Model – View - Controller) component sử dụng để phát triển ứng dụng web cách linh hoạt, nhanh chóng tiện lợi Cấu trúc Spring MVC Nhóm – Spring Framework 14 Báo cáo môn học Công nghệ phần mềm Hình Cấu trúc Spring MVC o DispatcherServlet: lớp đứng quản lý toàn hành động framework (front controller) suốt trình thực thi lệnh thông qua HTTP request o HandlerMapping: chọn dối tượng xử lý request dựa thuộc tính điều kiện request o Model nơi đóng gói liệu ứng dụng, tương tác với database o View nơi hiển thị liệu tương tác trực tiếp với người dùng Nhiệm vụ thành phần View trình bày liệu từ Model đến người dùng cuối o Controller nơi điều hướng request từ phía người dùng, xây dựng liệu, chọn view trả kết cho người dùng Luồng xử lý request Spring MVC Nhóm – Spring Framework 15 Báo cáo mơn học Cơng nghệ phần mềm Hình Luồng xử lý request Spring MVC o DispatcherServlet nhận request, DispatcherServlet duyệt HandlerMapping gọi Controller thích hợp với request o Controller xử lý request cách gọi phương thức dịch vụ thích hợp sau trả đối tượng ModelAndView cho DispatcherServlet Đối tượng ModelAndView chứa liệu đối tượng Model tên View o DispatcherServlet gửi tên View đến cho ViewResolver, ViewResolver tìm View thực cần dùng o DispatcherServlet truyền đối tượng Model đến cho View để xác định hiển thị kết quả, View lấy liệu đối tượng Model hiển thị kết cho người dùng ỨNG DỤNG CỦA SPRING o Spring sử dụng để phát triển ứng dụng Java Desktop, Mobile, JavaWeb o Spring sử dụng nhiều ứng dụng web thương mại điện tử o Có nhiều RESTful Web Service tạo sử dụng Spring o Một số trang web tiếng làm Spring: • linkedin.com • aliexpress.com • aws.amazon.com Nhóm – Spring Framework 16 ... có dự án khác như: Spring CredHub, Spring Flo, Spring for Apache Kafka, Spring LDAP, Spring AMQP, Spring Cloud Data Flow SPRING BOOT Spring Boot thuộc nhóm module Spring Framework, cung cấp... utility o Spring Boot sử dụng tất module Spring giống Spring MVC, Spring Data… Kiến trúc Spring Boot giống kiến trúc Nhóm – Spring Framework 13 Báo cáo môn học Công nghệ phần mềm o o o o o Spring. .. Spring MVC Hình Luồng xử lý request Spring MVC Nhóm – Spring Framework Báo cáo môn học Công nghệ phần mềm GIỚI THIỆU CHUNG VỀ SPRING FRAMEWORK Tổng quan Spring framework mã nguồn Phát triển Pivotal

Ngày đăng: 03/10/2021, 22:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w