Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
0,9 MB
Nội dung
SpringMVC Mục lục Spring Framework 1.1 Giới thiệu 1.2 Các module 1.2.1 Core Container 1.2.2 Spring Context/Application Context 1.2.3 Spring AOP (Aspect Oriented Programming) 1.2.4 Spring DAO 1.2.5 Spring ORM 1.2.6 Spring Web module 1.2.7 SpringMVC Framework 1.3 Lý sử dụng Spring Web MVC 2.1 Mơ hình MVC 2.1.1 Model (Mơ hình) 2.1.2 View (khung nhìn) : 2.1.3 Controller (Bộ điều khiển) : 2.2 SpringMVC 2.3 Các khái niệm liên quan 2.3.1 Inversion of Control Container (IoC container) : 2.3.2 Bean : 2.3.3 Dependency Injection (DI) : 2.3.3.1 Setter Injection: 2.3.3.2 Constuctor injection: 10 2.3.4 Application Context : 11 2.4 2.3.4.1 ClassPathXmlApplicationContext: 12 2.3.4.2 FileSystemXmlApplicationContext: 12 2.3.4.3 XmlWebApplicationContext: 12 Cơ chế xử lý Request-Respone 12 2.4.1 Giải thích sơ đồ luồng liệu : 13 2.4.2 Configuring DispatcherServlet : 13 2.4.3 Configuring a context loader : 15 2.4.4 Building the controller : 16 2.4.5 Introducing ModelAndView : 17 2.4.6 Configuring the controller bean: 18 2.5 Truy xuất liệu SpringMVC 18 Spring Framework 1.1 Giới thiệu Spring Framework, hay ngắn Spring, framework mã nguồn mở viết Java Nó xem giải pháp kiến trúc tốt Java EE Theo thiết kế, khung hình giải phóng lập trình viên dùng Java, cho phép họ nhiều quyền tự Đồng thời cung cấp giải pháp tiện lợi, đầy đủ dẫn chứng tài liệu, dễ dàng sử dụng, phù hợp với thực hành thông dụng công nghệ phần mềm 1.2 Các module Spring đóng vai trò tầng business Spring tổ chức thành modules : 1.2.1 Core Container Core package phần framework, cung cấp đặc tính IoC (Inversion of Control: Khung chứa đảo ngược khống chế) Dependency Injection Khái niệm BeanFactory - cài đặt factory pattern cho phép bạn móc nối phụ thuộc đối tượng file cấu hình 1.2.2 Spring Context/Application Context Phía Core package Context package - cung cấp cách để truy cập đối tượng Context package kết thừa đặc tính từ bean package thêm vào chức đa ngôn ngữ (I18N), truyền kiện, resource-loading, 1.2.3 Spring AOP (Aspect Oriented Programming) 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 metadata vào Spring Sử dụng thêm annotation (chú thích) vào source code để hướng dẫn Spring làm để liên hệ với aspect (Khía cạnh khác) 1.2.4 Spring DAO DAO package cung cấp cho tầng JDBC, bỏ bớt coding dài dòng JDBC chuyển đổi mã lỗi xác định database vendor JDBC package cung cấp cách lập trình tốt declarative transaction management 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 1.2.5 Spring ORM ORM package cung cấp tầng tích hợp với object-relational mapping API bao gồm: JDO, Hibernate, iBatis Sử dụng ORM package bạn sử dụng tất object-relational mapping kết hợp với tất đặc tính Spring declarative transaction management 1.2.6 Spring Web module Spring Web package cung cấp đặc tính web như: chức file-upload, khởi tạo IoC container sử dụng trình lắng nghe serlvet web-oriented application context 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 1.2.7 SpringMVC Framework Spring Framework ứng dụng mã nguồn mở phổ biến cho Java EE phát triển dễ dàng Nó bao gồm container, framework cho thành phần quản lý, snap-in dịch vụ cho giao diện người dùng web, giao dịch,… Một phần Spring Framework Spring Web MVC, mơ hình MVC mở rộng để tạo ứng dụng web 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 SpringMVC framework cung cấp phân biệt rõ ràng domain model web form 1.3 Lý sử dụng Tất framework tích hợp tốt vào Spring Hoạt động tốt áp dụng theo kiến trúc MVC Sử dụng chế plug-in Kết hợp tốt với O/R (object-relational) Mapping frameworks Hibernate Dễ Testing ứng dụng Ít phức tạp so với framework khác Cộng đồng người sử dụng nhiều, nhiều sách xuất Spring Web MVC 2.1 Mơ hình MVC 2.1.1 Model (Mơ hình) Mơ hình gồm lớp java có nhiệm vụ: - Biểu diễn data cho phép truy cập tới để get set data (JAVABEAN), Thường phần layer mô cách đầy đủ đối tượng từ giới thực - Nhận yêu cầu từ khung nhìn - Thi hành u cầu (tính toán, kết nối CSDL …) - Trả giá trị tính tốn theo u cầu Controller 2.1.2 View (khung nhìn) : Bao gồm mã tương tự JSP, HTML, CSS, XML, Javascript, JSON… để hiển thị giao diện người dùng, liệu trả từ Model thông qua Controller… 2.1.3 Controller (Bộ điều khiển) : Đồng hố Khung nhìn Mơ hình Tức với trang JSP tương ứng với lớp java để xử lý ngược lại, kết trả trang jsp nào.Nó đóng vai trò điều tiết View Model Như vậy, tách biệt mã java khỏi mã html Do vậy, giải khó khăn nêu Mơ hình Người thiết kế giao diện người lập trình java mang tính chất độc lập tương đối Việc debug hay bảo trì dễ dàng hơn, việc thay đổi theme trang web dễ dàng … 2.2 SpringMVC Framework Spring thùng chứa nhẹ hỗ trợ nhiều framework thư viện Nó cho phép nhà phát triển trộn kết hợp nhiều framework phát triển triển khai ứng dụng Các SpringMVCcó lợi từSpring framework cung cấp lần tốt cho framework hiệu cho phát triển ứng dụng web Các MVCSpring framework phát triển web dựa mẫu thiết kế MVC (Model View Controller) Các tính framework SpringMVC Pluggable công nghệ View Injection dịch vụ vào điều khiển 2.3 Các khái niệm liên quan 2.3.1 Inversion of Control Container (IoC container) : IProcess AProcess Service BProcess Hai package: org.springframework.beans org.springframework.context cung cấp IoC container cho Spring framework Giao tiếp BeanFactory cung cấp kỹ thuật cấu hình nâng cao, có khả quản lý đối tượng Giao tiếp ApplicationContext kế thừa từ BeanFactory thêm vài chức khác tích hợp với đặc tính Spring AOP, truyền kiện, application context WebApplicationContext sử dụng ứng dụng web Hiệu chỉnh components chương trình quản lý vòng đời (lifecycle) đối tượng Java 2.3.2 Bean : Các đối tượng ứng dụng quản lý IoC container gọi bean Một bean đơn giản đối tượng khởi tạo, phân phát quản lý IoC container Sự phụ thuộc chúng phản ánh configuration metadata sử dụng container Giao tiếp org.springframework.beans.factory.BeanFactory IoC container chịu trách nhiệm chứa, khởi tạo, quản lý móc nối phụ thuộc bean Một cài đặt (kế thừa) BeanFactory XmlBeanFactory - nhận XML configuration metadata sử dụng để cấu hình cho ứng dụng Configuration metadata có định dạng XML (hoặc properties), sử dụng để viết bean definitions cho bean mà bạn muốn IoC container quản lý Ở mức cấu hình IoC container phải chứa bean mà container phải quản lý Khi sử dụng XML-based configuration metadata, bean cấu nhiều element bên element Các bean tương ứng với đối tượng tạo ứng dụng 2.3.3 Dependency Injection (DI) : Kiểm soát ứng dụng, Liên kết đối tượng lại với Tất thông tin ứng dụng cấu hình file xml dó dễ dàng thay đổi , mở rộng ứng dụng kiến trúc plug-in Object B Object C Object A Đối tượng A tạo đối tượng B,C phụ thuộc vào A không liên kết chặt chẽ với A Object A creates creates Object B Một đối tượng A chứa phương thức setter accept interfaces to objects B and C Điều đạt với hàm đối tượng A chấp nhận đối tượng B C Là đối tượng định nghĩa phụ thuộc chúng thông qua tham số phương thức khởi tạo (constructor) thuộc tính thiết lập thể (instance) sau khởi tạo trả từ phương thức factory Sau cơng việc container, đảo ngược phụ thuộc tạo bean Do có tên Inversion of Control (IoC) Có hai biến thể DI là: Setter Injection Constructor Injection 2.3.3.1 Setter Injection: Cho đoạn code sau : my@email.address Đoạn code tương ứng với đoạn code sau : Person person = new Person(); person.setEmail(“my@email.address”); Khởi tạo đối tượng Person gán giá trị email cho Được nhận phương thức setter bean sau triệu gọi phương thức khởi tạo không tham số phương thức static factory không tham số để khởi tạo bean 2.3.3.2 Constuctor injection: Được nhận cách triệu gọi phương thức khởi tạo với số tham số Một biến thể khác thay cho constructor sử dụng phương thức static factory để trả thể đối tượng