Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 92 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
92
Dung lượng
1,98 MB
Nội dung
Nhóm BDG SPRING MVC TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN LẬP TRÌNH ỨNG DỤNG JAVA SE08 – SPRING GV. Nguyễn Hoàng Anh [Đề tài tìm hiểu lần 3] [Nhóm BDG] STT MSSV HỌ TÊN 1 1041309 NGUYỄN CÔNG BÌNH 2 1041317 TRẦN NGỌC HOÀI DUY 3 1041327 LỘ THÔI MINH ĐÔNG Nhóm BDG SPRING MVC Mục Lục I. Tổng quan về Spring Framework 5 1. Giới thiệu về Spring Framework 5 2. Spring với Enterprise Java Bean 5 2.1. Spring 5 2.2. EJB (Enterprise Java Bean) 6 2.3. So Sánh Spring và EJB 5 3. Mục đích của Spring 6 4. Các phiên bản của Spring MVC 6 5. Yêu cầu về kỹ thuật 6 6. Yêu cầu cài đặt 6 7. Module trong Spring Framework 6 7.1. Spring Core Container 8 7.2. Spring Context/ Application Context 8 7.3. Spring AOP(Aspect- Oriented) 8 7.4. Spring DAO 8 7.5. Spring ORM 9 7.6. Spring Web Module 9 7.7. Spring MVC Framework 9 8. Kiến trúc MVC(Model – View- Controller) 9 8.1. Thành phần của MVC 9 8.2. Motivation for MVC 10 8.3. MVC trong Spring 10 9. Cơ chế Validation 10 10. Kiến trúc lưu trữ dữ liệu trên Database(Data access with JDBC) 11 10.1. Giới thiệu về Spring Framework JDBC 11 10.2. Kiểm soát các kết nối cơ sở dữ liệu 12 11. Kiến trúc ORM(Object Relationship Mapping) 12 11.1. Giới thiệu về ORM trong MVC 12 11.2. General ORM integration considerations 13 II. Web MVC FrameWork 13 Nhóm BDG SPRING MVC 1. Giới thiệu về Web MVC framework 14 2. DispatcherServlet 14 3. Implementing Controllers 18 3.1. Định nghĩa Controllers với @Controllers 19 3.2. Lập bản đồ các yêu cầu với @ RequestMapping 19 4. Handler Mapping 20 5. Resolving views 23 5.1. Giải quyết các view bằng giao diện ViewResolver 23 5.2. Chaining ViewResolvers 25 5.3. Chuyển đến view 26 5.4. ContentNegotiatingViewResolver 27 6. Using locales 29 6.1. AcceptHeaderLocaleResolver 29 6.2. CookieLocaleResolver 30 6.3. SessionLocaleResolver 30 6.4. LocaleChangeInterceptor 30 7. Using themes 31 7.1. Tổng quan về themes 31 7.2. Định nghĩa themes 31 7.3. Phân giải Theme 32 8. Spring’s multipart(fileupload) support 33 8.1. Giới thiệu 33 8.2. Sử dụng MultipartResolver 33 8.3. Xử lý một tập tin tải lên trong một biểu mẫu 34 9. Handling exceptions 35 9.1. HandlerExceptionResolver 35 9.2. @ExceptionHandler 36 10. Convention over configuration support 37 10.1. Controller-ControllerClassNameHandlermapping 37 10.2. The Model ModelMap (ModelAndView) 38 10.3. The View – RequestToViewNameTranslator 39 11. Etag support 40 12. Configuring Spring MVC 41 Nhóm BDG SPRING MVC 12.1. mvc:annotation-driven 41 12.2. mvc:interceptors 42 12.3. mvc:view-controller 43 12.4. mvc:resources 43 12.5. mvc:default-servlet-handler 43 III. Demo HelloSpringMVC 44 1. Bước 1: Tạo Project 44 2. Bước 2: Tạo Service 46 3. Bước 3: Tạo Controller 46 4. Bước 4: Tạo View 48 5. Bước 5: Cấu hình 49 IV. Ứng Dụng: Đồ án Java Lý thuyết: Chợ Lớn- Gia Dụng 50 V. Tham Khảo 50 Nhóm BDG SPRING MVC I. Tổng quan về Spring Framework Spring Framework - Kiến trúc và ứng dụng 1. Giới thiệu về Spring Framework - Spring là một application framework mã nguồn mở, được giới thiệu vào năm 2002. Rod Johnson đã đưa ra ý tưởng này từ kinh nghiệm làm việc với kiến trúc J2EE. - Ông ta đã viết cuốn sách với tiêu đề: “J2EE Develoment without using EJB” để giới thiệu khái niệm trình chứa hạng nhẹ (lightweight container). Với lý luận: EJB thì có giá trị của nó, nhưng không phải lúc nào cũng cần thiết và phù hợp cho tất cả các ứng dụng. - Như Hibernate chống lại CMP về nguyên lý cơ bản của kỹ thuật ORM, Spring chống lại EJB vì sự phức tạp và không phù hợp cho các unit test. Thay vì EJB, Spring sử dụng Java bean, với một vài sự thay đổi để thu được tất cả các thuận lợi mà môi trường EJB đưa ra. Do đó Spring là một sự lựa chọn khác so với EJB. 2. Giới thiệu với Enterprise Java Bean 2.1.Spring - Spring không phải là một kỹ thuật persistence nhưng nó cho phép tích hợp với các kỹ thuật khác. EJB thì tập trung vào kỹ thuật persistence và bây giờ nó đã cộng tác với Nhóm BDG SPRING MVC Hibernate, một ORM tốt nhất ngày nay. Nó đang dự định cộng tác với một kỹ thuật ORM tốt khác là JDO (cung cấp cho Object Database). - Trong Spring, chúng ta có thể sử dụng Java Bean để rút trích các thứ mà lúc trước chỉ có thể với EJB. Mục tiêu chính của Spring là đơn giản việc phát triển J2EE và testing. 2.2.EJB (Enterprise Java Bean) - EJB được xuất hiện vào 1988 và là một chuẩn, đặc tả trong thế giới Enterprise. Mặc dù có một số kỹ thuật Java gần đây, nhưng không có kỹ thuật nào đáng kể so với EJB về mặc tổng các đặc tính của nó. - Theo Rod Johnson thì EJB không phức tạp nhưng nó cố gắng cung cấp cách giải quyết cho các vấn đề phức tạp. EJB được phát triển chính cho các giao dịch, đối tượng được phân phát ở trên máy khác. Nhưng một số enterprise project không có mức độ phức tạp và vẫn sử dụng EJB và thậm chí các ứng dụng đơn giản trở nên phức tạp. Trong trường hợp này thì Spring là một sự chọn lựa. - Từ lúc Spring hỗ trợ các dịch vụ ở mức enterprise, thì nó tuyên bố là một sự lựa chọn khác đối với EJB. Thuận lợi của EJB: a) Transaction Management b) Declarative Transaction support c) Persistence ( CMP & BMP) d) Declarative Security e) Distributed Computing (Container managed RPC) Spring không cố gắng làm mọi thứ nhưng nó hỗ trợ những kỹ thuật tốt nhất cho mỗi yêu cầu.Thay vì CMP & BMP, nó hỗ trợ một vài kỹ thuật persistence khác như JDO, Hiberbate và OJB. Các ORM tool này thì có nhiều khả năng cài đặt hơn CMP. Để đơn giản coding JDBC, có một tool là iBatis và Spring cũng hỗ trợ nó. 2.3.So Sánh Spring và EJB Nhóm BDG SPRING MVC - Spring sử dụng Acegi, một security framework mã nguồn mở và cung cấp để khai báo security thông qua cấu hình Spring hoặc class metadata, trong khi EJB khai báo security được cấu hình thông qua mô tả demployment. - Spring cung cấp proxying cho RMI (kỹ thuật remoting đặc biệt như Burlap) JAX-RPC & web-service, trong khi EJB cung cấp lời gọi phương thức ở xa được quản lý bởi container. - Spring có thể cung cấp khai báo transaction như EJB. Hơn nữa, Spring còn cung cấp khai báo thủ tục rollback cho các phương thức và exception. - Do đó, trong khi EJB thì cứng và cố gắng làm mọi thứ, một vài công việc tốt nhưng một số thì không. Spring chỉ sử dụng Java Bean và thông qua một số kỹ thuật đặc biệt để cung cấp nhiều chức năng như EJB, bằng cách tích hợp với một số kỹ thuật open source khác. Do đó, nó cung cấp một vài thuận lợi hơn EJB như: a) Testing dễ dàng hơn - không cần khởi động EJB container để test. b) Spring dựa vào quy ước của chuẩn Java Bean, nên programmer dễ dàng làm việc với nó. c) Nó sử dụng AOP (Aspect-Oriented Programming), mô hình hữu ích để bổ sung vào OOP truyền thống và bảo toàn tính nguyên vẹn của OOP. d) Nó thì uyển chuyển. 3. Mục đích của Spring - Mục đích của Spring là trở thành một application framework. Các framework phổ biến khác như Struts, Tapestry, JSF, là các framework tốt cho tầng web nhưng khi chúng ta sử dụng các framework này, chúng ta phải cung cấp thêm framework khác để giải quyết tầng enterprise mà tích hợp tốt với các framework này. Spring làm giảm bớt vấn đề này bằng cách cung cấp một framework toàn diện bao gồm: • Core bean container • MVC framework Nhóm BDG SPRING MVC • AOP integration framework • JDBC integration frameworkEJB integration framework 1. Các phiên bản của Spring MVC – Tháng 10/2006: phát hành Spring 2.0 – Tháng 11/2007: phát hành Spring 2.5 – Hiện tại: Spring 3.0 – Download: http://www.springsource.org/download – Document: http://www.springsource.org/documentation 1. Yêu cầu về kỹ thuật – Để triển khai ứng dụng web sử dụng Spring framework cần cài đặt PHP 5.1.0 trở lên – Hiểu rõ phương pháp lập trình hướng đối tượng(OOP) vì đây là một framework được thiết kế theo phương pháp hướng đối tượng thuần túy. – Hiểu rõ về mô hình MVC 1. Yêu cầu cài đặt – Operating System: Windows 7 – NetBeans IDE: 6.9 hoặc 6.9.1, phiên bản Java – Java Development Kit(JDK) Phiên bản 6 – GlassFish Server Edition nguồn mở 3.0.2, yêu cầu JDK 6 – PHP: 5.3.0 – Máy chủ cơ sở dữ liệu MYSQL: 5.1.3 – Spring Framework 3.5 1. Module trong Spring Framework Nhóm BDG SPRING MVC – Spring Framework gồm có quy mô của 20 modules, được chia thành các nhóm Core Container, Data Access/Intergration, Web, AOP(Aspect Oriented Programing), Instrumentation, and Test như mô hình dưới đây: – Spring cũng cung cấp module tích hợp với O/R tool như Hibernate và JDO. Spring có thể được xem như một kiến trúc chứa 7 module. Chức năng của mỗi thành phần như sau: Nhóm BDG SPRING MVC 7.1. Core Container: - Core container cung cấp chức năng cơ bản của Spring. Thành phần chính của nó là Bean Factory, một cài đặt của Factory pattern. BeanFactory áp dụng IoC pattern để đặc tả sự phụ thuộc từ code của ứng dụng. 7.2. Spring Context/Application Context: - Spring context là một file cấu hình để cung cấp thông tin ngữ cảnh của Spring. Spring context cung cấp các service như JNDI access, EJB integration, e-mail, internalization, validation, và scheduling functionality. 7.3. Spring AOP (Aspect-Oriented): - Spring AOP module tích hợp chức năng lập trình hướng khía cạnh vào Spring framework thông qua cấu hình của nó. Spring AOP module cung cấp các dịch vụ quản lý giao dịch cho các đối tượng trong bất kỳ ứng dụng nào sử dụng Spring. Với Spring AOP chúng ta có thể tích hợp declarative transaction management vào trong ứng dụng mà không cần dựa vào EJB component. [...]... MappingSqlQuery, SqlUpdate and StoredProcedure – Gói phân cấp: Khung JDBC trừu tượng của Spring Framework bao gồm bốn gói khác nhau: core, datasource, object, support ○ Org.springframework.jdbc.core ○ Org.springframework.jdbc.datasource ○ Org.springframework.jdbc.object ○ Org.springframework.jdbc.support 1.1.Kiểm soát các kết nối cơ sở dữ liệu – – – – – – – – – DataSource DataSourceUtils SmartDataSource... dịch – Tất cả các tính năng truy cập dữ liệu cá nhân được sử dụng riêng nhưng tích hợp với Spring, cung cấp các cấu hình dựa trên XML và tham chiếu chéo của JavaBean – Trong một ứng dụng Spring, nhiều đối tượng quan trọng như JavaBean: truy cập dữ liệu mẫu, dịch vụ business có sử dụng truy cập dữ liệu hướng đối tượng và quản lý giao dịch, phân giải trên web, điều khiển web có sử dụng dịch vụ business –. .. XML file trong ứng dụng web Spring thì nhẹ về cả kích cỡ và chi phí Toàn bộ framework có thể được phân phát trong JAR file chỉ hơn 1.7MB Chi phí được yêu cầu bởi Spring thì không đáng kể Và Spring không ràng buộc, ví dụ: các đối tượng trong ứng dụng Spring không phụ thuộc vào các class của Spring III Release info: Nhóm BDG SPRING MVC Spring framework được download ở trang http://www.springframework.org... AspectJ-specific source cho cho bộ test của Spring * "samples" chứa các ứng dụng demo và chương trình giới thiệu IV Spring Application: Các bước tạo ứng dụng sử dụng Spring: 1 Một interface định nghĩa các chức năng 2 Một implementation chứa các thuộc tính, các phương thức settter và getter 3 Một file XML gọi là file cấu hình Spring 4 Chương trình client sử dụng chức năng trên //1 Một interface định nghĩa các chức... chạy chương trình này như một servlet Đầu tiên copy spring. jar đến thư mục common\lib của Tomcat và khởi động tomcat server Sau khi thiết lập classpath, tạo file HelloServlet .java như sau: HelloServlet .java import java. io.IOException; import java. io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; Nhóm BDG SPRING MVC... Validation – Validation sử dụng giao diện Spring s Validator xác nhận đối tượng, chứng thực, báo cáo các lỗi xác thực cho Errorobject – Ví dụ: xem xét một đối tượng dữ liệu nhỏ: – Cung cấp các hành vi xác nhận cho lớp Person bằng cách thực thi hai phương thức của org.springframework.validation ○ Supports(class) ○ Validate(object, org.springframework.validation.Errors – Thực hiện một Validator đơn giản, sử dụng. .. Injection – Spring thêm những cải tiến đáng kể cho sự lựa chọn các lớp ORM khi tạo truy cập dữ liệu ứng dụng Có thể tận dụng càng nhiều các hỗ trợ hội nhập như ý muốn và có thể so sánh Sử dụng nhiều hỗ trợ của ORM như là thư viện, bất kể công nghệ bởi nó được thiết kế như một tập hợp các JavaBeans có thể tái sử dụng ORM trong một container IoC Spring tạo điều kiện cấu hình và triển khai – Lợi ích của... liệu.: import java. io.IOException; import java. io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFacto ry; import org.springframework.core.io.ClassPathResource;... "-/ /SPRING/ /DTD BEAN//EN" "http://www.springframework.org/dtd /spring- beans.dtd"> Good Morning! //4 Chương trình client sử dụng chức năng trên import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFacto ry; Nhóm BDG SPRING MVC import org.springframework.core.io.ClassPathResource;... này cũng cung cấp các dịch vụ quản lý giao dịch cho các đối tượng trong ứng dụng Spring 7.5 Spring ORM: - Spring có thể tích hợp với một vài ORM framework để cung cấp Object Relation tool bao gồm: JDO, Hibernate, OJB và iBatis SQL Maps 7.6 Spring Web module: -Nằm trên application context module, cung cấp context cho các ứng dụng web Spring cũng hỗ trợ tích hợp với Struts, JSF và Webwork Web module cũng . của Spring MVC – Tháng 10/2006: phát hành Spring 2.0 – Tháng 11/2007: phát hành Spring 2.5 – Hiện tại: Spring 3.0 – Download: http://www.springsource.org/download – Document: http://www.springsource.org/documentation 1 Nhóm BDG SPRING MVC TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN LẬP TRÌNH ỨNG DỤNG JAVA SE08 – SPRING GV. Nguyễn Hoàng Anh [Đề tài tìm hiểu. bất kỳ ứng dụng nào sử dụng Spring. Với Spring AOP chúng ta có thể tích hợp declarative transaction management vào trong ứng dụng mà không cần dựa vào EJB component. Nhóm BDG SPRING MVC - Spring