Tải bản đầy đủ (.pdf) (75 trang)

isas quarter 7 frameworks

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.64 MB, 75 trang )

ISAS QUARTER 7 - MMS V2 NIIT CAN THO
2
CLASS B120002
THÔNG TIN BÁO CÁO KĨ NĂNG
TÌM KIẾM VÀ PHÂN TÍCH THÔNG TIN



Mã lớp: B120002
Ngày bắt đầu: 21/11/2011
Ngày kết thúc: 3/12/2011
Tên giảng viên: Thầy Phạm Tiến Phúc
Học viên thực hiện: Nguyễn Đức Cường
Huỳnh Văn Sol
Huỳnh Thuỷ Ngân
Bùi Anh Vũ
Trịnh Thành Tài
Huỳnh Minh Tính
Nguyễn Minh Nhựt
Date of Submission: 5/12/2011

ISAS QUARTER 7 - MMS V2 NIIT CAN THO
3
CLASS B120002
CHỨNG NHẬN


Đây là chứng nhận bài báo cáo này được hoàn thành bởi nhóm 1
theo yêu cầu trong khóa đào tạo của NIIT.






Giảng viên: Phạm Tiến Phúc

ISAS QUARTER 7 - MMS V2 NIIT CAN THO
4
CLASS B120002
TÀI LIỆU THAM KHẢO










ISAS QUARTER 7 - MMS V2 NIIT CAN THO
5
CLASS B120002
MỤC LỤC

THÔNG TIN BÁO CÁO KĨ NĂNG TÌM KIẾM VÀ
PHÂN TÍCH THÔNG TIN 2
CHỨNG NHẬN 3
TÀI LIỆU THAM KHẢO 4
MỤC LỤC 5
PHẦN I: STRUTS 7

I. Giới thiệu về Struts 8
II. Lịch sử phát triển của Struts 8
III. Tóm tắt về Struts 8
IV. Tóm tắt cấu hình Struts 9
V. Các đặc tính của Struts 10
VI. Các dự án ứng dụng Struts 11
VII. Struts cho người mới 12
PHẦN II: SPRING 13
I. Java EE 14
II. Tổng Quan Về Spring Framework 16
III. Đích Của Spring Framework 17
IV. Lịch Sử Của Spring Framework 17
V. Những Thành Phần Trong Spring 19
VI. Introduction 20
PHẦN III: JAVASERVER FACES 28
I. Giới thiệu 29
II. Đặc điểm của JSF 29
III. Vai trò của Framework 30
IV. Giới thiệu các thành phần của JSF 31
V. Các thành phần chính của JSF 31
VI. Vòng đời của việc xử lý request 32
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
6
CLASS B120002
VII. Managed Beans 33
PHẦN IV: JFX 40
I. Giới thiệu 41
II. Những đặc điểm nổi bật của JavaFX 41
III. JavaFX Platform Components 44
IV. Công Cụ Phát Triển 45

PHẦN V: GROOVY 48
I. Giới thiệu 49
II. Groovy là gì? 49
III. Groovy 50
IV. Lịch Sử phát triển 50
V. Sức mạnh của Groovy 51
VI. Ứng dụng cua Groovy on Grails. 52
VII. Các tính năng 55
PHẦN VI: TOMCAT AND GLASSFISH 57
I. Giới thiệu sơ lược về tomcat và glassfish 58
II. So sánh GlassFish và Tomcat 62
PHẦN VII: HIBERNATE 65
I. Khái Niệm 66
II. Cài Đặt 67
III. Sử Dụng 67
NHẬN XÉT CỦA GIẢNG VIÊN 76

ISAS QUARTER 7 - MMS V2 NIIT CAN THO
7
CLASS B120002
PHẦN I: STRUTS


I. Giới thiệu về Struts
II. Lịch sử phát triển của Struts
III. Tóm tắt về Struts
IV. Tóm tắt cấu hình Struts
V. Các đặc tính của Struts
VI. Các dự án ứng dụng Struts
VII. Struts cho người mới


ISAS QUARTER 7 - MMS V2 NIIT CAN THO
8
CLASS B120002
I. Giới thiệu về Struts
Struts là một framework web mã nguồn mở được phát triển cho Java
EE web application.Struts sử dụng và mở rộng Java Servlet API theo
hướng kiến trúc MVC(model-view-controller). Struts được khởi xướng
bởi Craig McClanahan và sau đó được bảo trợ bởi Apache Foundation
vào tháng 5 năm 2000. Vào thời gian đầu Struts được biết thông qua
Apache Jakarta Project hay còn gọi là Jakarta Struts nhưng dần sau đó
chuyển thành project chính của Apache vào năm 2005.
Struts có 2 phiên bản là version 1 và version 2. Version 1 là phát triển
web theo kiểu truyền thống. Còn version 2 là được Apache Struts tạo ra
từ 1 nhánh của webwork.
II. Lịch sử phát triển của Struts
Apache Struts Project được khởi xướng bởi Craig R. McClanahan vào
tháng 5 năm 2000 cung cấp một chuẩn MVC web cho những người
phát triển Java. Vào tháng 7 năm 2001 phiên bản Struts1.0 đã ra đời.
Struts version 2 ra đời bản đầu tiên vào tháng 12 năm 2006. Hiện tại
version mới nhất của Struts 1 và 2 là: Struts 1.3.10 và Struts 2.1.6.
III. Tóm tắt về Struts
Framework của web này cung cấp điều khiển thành phần của nó và tích
hợp với các công nghệ khác để cung cấp các Model và các View. Đối
với các Model, framework có thể tương tác với các công nghệ truy cập
dữ liệu chuẩn như JDBC và EJB, cũng như hầu hết các gói phần mềm
của bên thứ ba, nhưHibernate, iBATIS, hoặc Object Relational Bridge.
Đối với View, Framework các hoạt động tốt vớiJavaServer Pages, bao
gồm JSTL và JSF, cũng như Velocity Templates, XSLT, và các hệ thống
trình diễn khác.

Framework là Controller hoạt động như một cầu nối giữa các Model của
ứng dụng và các View web. Khi yêu cầu được nhận, điều khiển các gọi
phương thức một lớp học Action. Các Action tham vấn class với Model
(hoặc, tốt hơn, một Facade đại diện Model của bạn) để kiểm tra hoặc
cập nhật trạng thái của ứng dụng. Framework này cung cấp một lớp
ActionForm để giúp truyền dữ liệu giữa Model và View.
Thông thường, các Model được thể hiện như là một tập hợp các
JavaBeans. Thường, các nhà phát triển sẽ sử dụng BeanUtils
Commons để truyền dữ liệu giữa các ActionForms và các đối tượng
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
9
CLASS B120002
Model (hoặc một Facade). Tốt hơn, mô hình sẽ làm "dỡ bỏ nặng nề", và
các Action sẽ hoạt động như một "cảnh sát giao thông" hoặc adapter.
IV. Tóm tắt về cấu hình trong Struts
Một ứng dụng web sử dụng một mô tả triển khai để khởi tạo tài nguyên
như servlets và taglibs. Các mô tả triển khai được định dạng như là một
tài liệu XML và đặt tên là "web.xml". Tương tự như vậy, Framework sử
dụng một file cấu hình để khởi tạo nguồn lực của mình. Những tài
nguyên này bao gồm các ActionForms để thu thập đầu vào từ người
dùng, ActionMappings nhập trực tiếp tới hành động phía máy chủ, và
ActionForwards để chọn trang đầu ra.
Dưới đây là một cấu hình đơn giản (struts-config.xml) cho một công việc
đăng nhập:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"
<struts-config>
<form-beans>

<form-bean name="logonForm" type="app.LogonForm"/>
</form-beans>
<action-mappings>
<action path="/Welcome" forward="/pages/Welcome.jsp" />
<action path="/Logon" forward="/pages/Logon.jsp" />
<action path="/LogonSubmit" type="app.LogonAction"
name="logonForm"
scope="request" validate="true"
input="/pages/Logon.jsp" >
<forward name="success" path="/pages/Welcome.jsp" />
<forward name="failure" path="/pages/Logon.jsp" />
</action>
<action path="/Logoff" type="app.LogoffAction" >
<forward name="success" path="/pages/Logoff.jsp" />
</action>
</action-mappings>
<message-resources parameter="resources.application"/>
</struts-config>
Có một số tài nguyên khác mà bạn có thể chỉ định trong tập tin cấu hình
của Framework. Bạn có thể chỉ định xác nhận cho các ActionForms
trong một mô tả XML, bằng cách sử dụng Struts Validator. Một phần
mở rộng theo tiêu chuẩn, Tiles, giúp bạn xây dựng các trang từ các
mảnh nhỏ hơn.
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
10
CLASS B120002
Struts được mở rộng. Mỗi class được triển khai bởi Framework có thể
được thay thế bằng các class mặc định của riêng bạn. Các thuộc tính
của lớp mặc định của bạn có thể được thiết lập bằng cách sử dụng các
tính năng properties này. Đây là một trong những lý do tại sao có phần

mở rộng đóng góp rất nhiều. Chúng tôi cung cấp framework cơ bản,
nhưng bạn vẫn có thể viết các ứng dụng của bạn theo cách của bạn.
Để biết thêm về Framework và các công nghệ cơ bản của nó, hãy xem
hướng dẫn sử dụng.
V. Các đặc tính của Struts
1. Là một web MCV framework đầu tiên.
Trước khi Struts ra đời thì việc phát triển các ứng dụng web cho
người lập trình Java là dựa vào công nghệ Jsp/Serverlet do Sun
Microsoft System đặt tả. Trong quá trình phát triển bằng
Jsp/Servlet thì người lập trình cũng đã mất rất nhiều khó khăn
trong việc lấy các dữ liệu theo từng request, giao tiếp giữu các
trang, quan hệ giữa các phần xử lý logic và phần hiển thị chưa
thật sự phân bố rõ rang khiến cho việc phát triển rất nặng nhọc và
khó quản lý.
Struts ra đời bằng việc kế thừa và mở rộng các Java Servlet API
nhưng theo các hướng đối tượng hơn theo mẫu thiết kế MVC.
Struts phân chia việc xử lý theo dạng từng action một và tách biệt
phần xử lý và phần hiển thị ra nên việc phát triển tương đối thuận
lợi và dễ dàng hơn.
Các thành phần của Struts:
- Struts Controller Components: đóng vai trò nhận các giá trị
input từ client, gọi những phương thức để thực thi nghiệp vụ
bussiness, trả dữ liệu về và chọn phần view phù hợp để hiển
thị.
- Struts Model Components: bao gồm các lớp cần thiết để xử lý
những phương thức bussiness, ngoài ra còn có các lớp
DTOs(Data Transfer Objects), các lớp truy xuất cơ sở dữ liệu…
- Struts View Components: đây là phần hiển thị của ứng dụng
web bao gồm các file HTML, các phần data transfer object,
JSP, custom tabs, quản lý các tài nguyên….

ISAS QUARTER 7 - MMS V2 NIIT CAN THO
11
CLASS B120002
2. Tính tương thích và kết hợp:
Strust có thể tương thích với các framework khác như hibernate,
Spring…
Đối với struts2 thì việc phát triển ứng dụng web đặt biệt dễ dàng
hơn và kết hợp với các framework khác cũng dễ dàng hơn bằng
việc viết thêm các plugin.
Struts hỗ trợ tốt cho các công nghệ view khác nhau như: Jsp,
Velocicty, Freemarker, Tile.
3. Hỗ trợ đa ngôn ngữ
Struts framework có hỗ trợ việc đa ngôn ngữ rất tốt thông qua việc
cấu hình các tại nguyên trong file struts-config.xml.
4. Hỗ trợ ajax
Struts hỗ trợ ajax bằng cách viết hoàn toàn thuần javascript và
json hoặc có thể sử dụng các thư viện ajax như: DWR,
Prototypes.js, jQuery…
5. Hỗ trợ Annotation validate và intercepter đối với Struts2
Struts2 có hỗ trợ việc validation trực tiếp trong source code Java
bằng các cú pháp anotation của Java5. Ngoài ra Struts2 còn được
thừa hưởng tính năng hỗ trợ intercepter của Webwork giúp người
phát triển có thể dễ dàng thực hiện những công việc phức tạp
theo hướng lập trình AOP.
VI. Các dự án ứng dụng Struts
- Để cung cấp các ứng dụng ví dụ Struts.
- Để lưu trữ Struts phần mở rộng và các tiện ích.
- Để đưa mã ra nơi mà các cộng đồng có thể sử dụng nó, sửa
chữa nó, và duy trì nó.
Struts dự án ứng dụng hiện nay bao gồm các tiểu dự án sau đây:

- AppFuse - Một ứng dụng cơ bản Struts được sử dụng cho các
ứng dụng web trong tương lai.
- Thăm dò ý kiến - Một cuộc khảo sát quản lý ứng dụng Struts.
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
12
CLASS B120002
- Gọi hành động Struts Framework (SAIF) - Thêm các tính năng
như hành động đánh chặn và Inversion of Control (IoC) cho
Struts.
- Struts BSF - Một hành động thực hiện Struts sử dụng BSF
ngôn ngữ kịch bản tương thích.
- Struts Cocoon - Tích hợp Struts và Cocoon, Cocoon sử dụng
cho các lớp trình bày.
- Struts Hộp thoại - Thực hiện mô hình xử lý sự kiện, quản lý nhà
nước, cung cấp các dòng điều khiển đơn giản hóa và tạo điều
kiện phát triển thành phần .
- Struts dòng - mang đến điều khiển lưu lượng của Cocoon
Struts.
- Struts Resume - Một ứng dụng được viết bằng cách sử dụng
AppFuse như một nền tảng.
- Struts mùa xuân - Tích hợp Struts và Inversion mùa xuân của
khuôn khổ (IOC) điều khiển.
- StrutsDoc - Một loại công cụ tài liệu javadoc cho Struts và các
file cấu hình có liên quan đến Struts.
- AjaxTags - Một phiên bản sửa đổi của HTML Struts taglib cho
biết thêm rằng chức năng AJAX trong một thời trang hoàn toàn
khai báo (xin vui lòng xem lưu ý quan trọng về dự án này trên
trang AjaxTags).
- AjaxChat - Một ứng dụng chat dựa trên Struts sử dụng AJAX
kỹ thuật. Điều này có nghĩa là để phục vụ như một ví dụ cho

những người tự hỏi làm thế nào để sử dụng AJAX trong một
ứng dụng Struts.
VIII. Struts cho người mới
Nếu bạn là người mới để phát triển với Struts, đây là một số gợi ý
về làm thế nào để bắt đầu.
Khuôn khổ "đứng trên vai những người khổng lồ". Để sử dụng
Struts tốt, điều quan trọng là phải có một nắm bắt tốt các nguyên
tắc cơ bản. Bắt đầu bằng cách xem xét mồi công nghệ chính, và
nghiên cứu bất kỳ chủ đề quen thuộc.

ISAS QUARTER 7 - MMS V2 NIIT CAN THO
13
CLASS B120002
PHẦN II: SPRING



VII. Java EE
VIII. Tổng Quan Về Spring Framework
IX. Đích Của Spring Framework
X. Lịch Sử Của Spring Framework
XI. Những Thành Phần Trong Spring
XII. Introduction

ISAS QUARTER 7 - MMS V2 NIIT CAN THO
14
CLASS B120002
I. Java EE :
- Java 2 Platform, Enterprise Edition (Nền tảng Java, phiên bản 2
- bản dành cho kinh doanh là công nghệ của Sun

Microsystems) hay Java EE (gọi tắt là J2EE) là một nền lập
trình dành cho việc phát triển ứng dụng phân tán kiến trúc đa
tầng, chủ yếu dựa vào các thành phần môđun chạy trên các
máy chủ ứng dụng.
- Java EE còn được xem như là một ngôn ngữ hay một tiêu
chuẩn vì để có thể công bố là sản phẩm của họ tương thích với
Java EE, các nhà cung cấp phải tuân thủ một số yêu cầu đã
đặt ra; mặc dù chúng không phải là các tiêu chuẩn của ISO
(International Organization for Standardization) hay của Hiệp
hội nhà sản xuất máy tính châu Âu (European Computer
Manufacturers Association - gọi tắt là ECMA).
- Java EE bao gồm một số đặc tả kĩ thuật API như:
JDBC
RMI.
Dịch vụ mạng (Web services).
XML.
JMS (Java Message Service).
- J2EE còn bao gồm một số đặc tả chỉ tồn tại trong các thành
phần của nó. Những thành phần này bao gồm Enterprise
JavaBean (chủ thể Bean dùng trong kinh doanh), servlet,
portlet, JSP và một số các kĩ thuật về dịch vụ mạng (web
service).
- Điều này cho phép nhà phát triển tạo ra một chương trình ứng
dụng kinh doanh (enterprise application) không những chỉ có
thể sử dụng trên các nền tảng khác nhau, mà còn có thể
khuếch trương thành những qui mô lớn hơn và tích hợp với
những công nghệ kế thừa từ trước đây. Trình chủ của Java EE
có thể quán xuyến các giao dịch (transactions), nhiệm vụ bảo
an (security), chức năng đa biến số bất định lượng (arity), tính
qui mô hóa (scalability), sự tương tranh (concurrency) và quản

lý các thành phần đã được triển khai trong môi trường của nó.
Điều này có nghĩa là các nhà phát triển có thể tập trung vào
các lôgic thương mại của các thành phần thay vì phải quan tâm
đến cơ sở hạ tầng và các nhiệm vụ tích hợp khác.
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
15
CLASS B120002
- Các API của Java EE chứa đựng một số kỹ thuật được mở
rộng thêm từ những chức năng trong các API của Java SE.
javax.ejb.* : API về chủ thể cấp kinh doanh (Enterprise
Java Beans - hay EJB) cung cấp một tập các hàm API
mà một khung chứa đối tượng phân tán (distributed
object container) phải hỗ trợ để có thể cung cấp tính
bền bỉ (persistence), khả năng liên lạc từ xa (dùng
RMI), khả năng khống chế tương tranh (concurrency
control) và điều khiển truy cập (access control) cho các
đối tượng phân tán (distributed objects).
javax.servlet : API về Servlets cung cấp một tập các
hàm API giữa một khung chứa mạng (web container)
và một servlet nhằm đảm nhiệm việc xử lí các yêu cầu
và hồi âm các phản ứng.
javax.servlet.jsp : Các gói javax.servlet.jsp và
javax.servlet.jsp.tagext cung cấp các hàm API về JSP.
javax.naming : Các gói javax.naming,
javax.naming.directory, javax.naming.event,
javax.naming.ldap và javax.naming.spi định nghĩa các
hàm API đối với các giao tiếp (Interface) sử dụng tên
trong khi truy cập đối tượng và thư mục (Java Naming
and Directory Interface - JNDI).
java.sql, javax.sql :Các gói java.sql và javax.sql cung

cấp các hàm liên nối với cơ sở dữ liệu (Java Database
Connectivity - JDBC).
java.transaction.* :Các gói này cung cấp các API để
quản lý việc giao dịch giữa các nguồn tài nguyên khác
nhau (Java Transaction API - JTA).
javax.xml.* :Các gói này cung cấp các hàm API để xử
lý các tài liệu XML (Java API for XML Processing -
JAXP).
javax.jms.* :Các gói này cung cấp các hàm API sử
dụng trong dịch vụ thông điệp của Java (Java Message
Service - JMS).
- Java EE vs Spring Framework Shootout - Phần này so sánh
Spring và Java EE ngăn xếp các framework về web. Lại xem
xét những động cơ đằng sau những khuôn khổ mùa xuân và
khám phá sự xuất hiện của mô hình lập trình Java EE để đáp
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
16
CLASS B120002
ứng những thách thức đặt ra. Bài trình bày cung cấp cái nhìn
Spring vào khi Spring / hoặc Java EE là thích hợp cho một ứng
dụng web xây dựng và nếu họ có thể cùng tồn tại.
- Thực tiễn tốt nhất để Quá trình di chuyển Spring ứng dụng
Java EE 6 - Spring Framework không có nghi ngờ đóng vai trò
quan trọng trong phát triển như thế nào chúng tôi viết các ứng
dụng doanh nghiệp trên nền tảng Java ngày nay, nhưng nó vẫn
là một khuôn khổ sở hữu độc quyền thuộc sở hữu của một
công ty duy nhất. Tuổi phải dựa trên khuôn khổ sở hữu độc
quyền như vậy để phát triển các ứng dụng doanh nghiệp khá
hơn, và sử dụng Java EE 6 đã trở thành một cách dễ dàng hơn
để phát triển các ứng dụng doanh nghiệp dựa trên các tiêu

chuẩn, mà làm cho nó sự lựa chọn tốt nhất cho bất kỳ ứng
dụng doanh nghiệp . Trong phiên hoc5 này, bạn sẽ kinh
nghiệm làm thế nào để di chuyển một ứng dụng đầy đủ-stack
Spring điển hình tiêu chuẩn, ung dung spring ứng dụng Java 6
EE, bao gồm thử nghiệm tích hợp.
- Cả hai các bài thuyết trình mang lại Java EE là một lựa chọn
tiêu chuẩn dựa trên, dễ dàng hơn và tốt hơn để Spring
Framework độc quyền. Họ cũng bao gồm các kịch bản cho việc
chuyển sang và đồng tồn tại với Spring. Xin vui lòng thông qua
các bài thuyết trình đánh giá lại cách sử dụng Spring
Framework trong ngăn xếp ứng dụng của bạn.
II. Tổng Quan Về Spring Framework :
- Spring Framework, hay ngắn hơn là Spring, là một cấu trúc
dùng để xây dựng chương trình ứng dụng mã nguồn mở dành
cho ngôn ngữ lập trình Java.
- Phiên bản đầu tiên của nó do Rod Johnson viết, và đã được
ông xuất bản cùng với quyển sách đầu tay Expert One-on-One
Java EE Design and Development (Nhà xuất bản Wrox Press,
Tháng 10 năm 2002).
- Phiên bản phần mềm này cũng còn được xuất sang nền tảng
.NET (.NET platform), được gọi là Spring.net.
- Kiến trúc của Spring Framework được ra mắt công chúng lần
đầu tiên hồi tháng 6 năm 2003 dưới Giấy phép Apache - phiên
bản 2.0.
- Phiên bản 1.0 đánh dấu mốc thành đạt đầu tiên được xuất bản
vào tháng 3 năm 2004.
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
17
CLASS B120002
III. Mục Đích Của Spring Framework :

- Là một hình thức chủ yếu thay thế cho mô hình Enterprise
JavaBean , bởi vì Spring Framework không bắt buộc người ta
phải tuân theo một mô hình lập trình (programming model) cụ
thể nào, nó lan truyền rộng rãi trong cộng đồng những người
viết chương trình dùng Java.
- Nó được thiết kế với bộ khung hình này giải phóng lập trình
viên dùng Java, cho phép họ nhiều quyền tự do hơn, và đồng
thời cung cấp một giải pháp tiện lợi, đầy đủ dẫn chứng bằng tài
liệu, dễ dàng sử dụng, phù hợp với những thực hành thông
dụng trong công nghệ phần mềm.
- Bên cạnh những đặc trưng nền tảng của Spring Framework là
những cái có thể dùng được trong bất cứ một chương trình
ứng dụng Java nào, rất nhiều các mở rộng và tiến bộ trong việc
kiến tạo các trình ứng dụng dành cho nền tảng mạng web
(web-based application) dựa trên nền Java Enterprise.
- Với sự ra đời của Spring Framework đánh dấu bước ngoặc lớn
trong sự phát triển của java.
IV. Lịch Sử Của Spring Framework :
- Phần đầu tiên của Spring Framework ban đầu nguyên được
Rod Johnson viết vào năm 2000, trong khi ông đang làm một
chuyên viên cố vấn cho các khách hàng trong thị trường kinh tế
tài chính tại Luân Đôn.
- Trong lúc đang viết quyển Expert One-on-one J2EE Design
And Development (Programmer to programmer) (Thiết kế và
kiến tạo Java EE - tương giao cá nhân một đối một chuyên
ngành (lập trình viên với lập trình viên)), ông đã mở rộng thêm
phần mã nguồn, hòng biểu đạt ý tưởng của mình về mối tương
quan của các trình ứng dụng với những phần khác nhau của
J2EE và cho rằng người ta có thể đơn giản hóa mối tương
quan của chúng, và mối liên hệ ấy có thể trở nên cố định, bất

biến hơn là những gì mà các lập trình viên và các công ty vốn
quen sử dụng tại thời điểm đó.
- Trước đây, vào năm 2001, những mô hình lập trình cho các
trình ứng dụng cho mạng WEB được đại đa số sử dụng đều do
Java Servlet API và Enterprise JavaBean cung cấp. Cả hai đều
là đặc tả do Sun Microsystems kiến tạo với sự cộng tác của các
nhà buôn bán phần mềm và các bên quan tâm, và chúng rất
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
18
CLASS B120002
được mến chuộng trong cộng đồng Java. Những trình ứng
dụng không dùng cho mạng WEB như các ứng dụng trình
khách (client-based application) hay các ứng dụng tác vụ
(batch application) đều có thể sử dụng các công cụ từ mã
nguồn mở, các công cụ trên thị trường hoặc từ các dự án khác
là những cái cung cấp những đặc trưng yêu cầu.
- Rod Johnson được ghi công là người thiết lập bộ khung, dựa
trên những thói quen hành nghề được công chúng chấp nhận
là những phương pháp tốt nhất, và tạo cơ hội cho chúng có thể
được sử dụng trong tất cả các loại hình chương trình ứng
dụng, không chỉ cho các trình ứng dụng cho mạng WEB riêng
mà thôi. Ý tưởng này còn được biểu lộ trong cuốn sách của
ông và, sau khi được độc giả yêu cầu, ông còn cho xuất bản
kèm với mã nguồn với giấy phép mã nguồn mở nữa.
- Một nhóm nhỏ các nhà phát triển đang tiếp tục mở rộng bộ
khung này và một dự án đã được thành lập tại Sourceforge vào
tháng 2 năm 2003. Sau khi phát triển trền nền tảng ban đầu
hơn một năm họ đã phát hành phiên bản đầu tiên (1.0) vào
tháng 3 năm 2004. Sau khi phát hành nó đã nhận được nhiều
sự quan tâm của cộng đồng Java.

- Tuy nhiên, Spring Framework cũng chịu nhiều chỉ trích nặng nề
năm 2004 và vẫn còn là chủ điểm của những cuộc tranh cãi đôi
khi nóng bỏng. Vào thời điểm ra đời phiên bản đầu tiên nhiều
lập trình viên cùng một số thành viên tiên phong thấy nhận thấy
rằng Spring Framework là một phương hướng mới để thoát
khỏi mô hình lập trình truyền thống. Điều này đặc biệt đúng đối
với Enterprise JavaBean.
- Một trong những mục tiêu thiết kế Spring Framework là làm cho
nó dễ dàng tích hợp với tiêu chuấn J2EE và các bộ công cụ có
sẵn trên thị trường hiện nay. Ảnh hưởng của điều này là nó hầu
như góp phần xóa bỏ nhu cầu phải định nghĩa các chức năng
đặc trưng trên một bản tài liệu đặc tả chính thức do hội đồng
quản lý, cái mà một số người đã từng phê phán.
- Spring Framework đã làm cho những kỹ thuật vốn không được
biết đến mấy trở nên những kỹ thuật được mọi người ưa
chuộng trong một thời gian ngắn ngủi.
- Một trong những kỹ thuật nổi tiếng hơn cả là kỹ thuật đảo
ngược quyền khống chế (Inversion of Control, IoC). Nội trong
2004, Spring Framework được rất nhiều người hưởng ứng và
làm theo và cũng do tự chính nó cống hiến khung hình lập trình
định dạng (aspect-oriented programming) (AOP) . Spring
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
19
CLASS B120002
Framework đã tạo cơ hội cho mẫu hình lập trình này trở nên
được ưa thích trong cộng đồng Java.
- Năm 2005 cho thấy mức độ hưởng ứng nâng cao hơn những
năm trước, nguyên do cũng vì những xuất bản mới được ra với
những cột mốc đáng kể và những tính năng mới được thêm
vào. Diễn đàn Spring (Spring Forum) ra đời cuối năm 2004

cũng góp phần không nhỏ trong việc nâng cao tính phổ biến
của bộ khung hình, và từ đó đến nay đã sinh trưởng trở thành
một nguồn thông tin quan trọng, giúp đỡ cho người sử dụng.
- Trong cùng năm đó, những người phát triển Spring Framework
khởi thủy công ty riêng của họ để hỗ trợ về mặt thương mại và
đáng kể hơn cả là sự bắt tay cộng tác với BEA [1]. Vào tháng
12 năm 2005, hội thảo đầu tiên về Spring Framework đã được
tổ chức tại Miami, Florida thu hút 300 nhà phát triển trong 3
ngày, và tiếp theo đó cuộc hội thảo ở Antwerp vào tháng 6 năm
2006, thu hút hơn 400 người.
V. Những Thành Phần Trong Spring :
- Spring framework chứa nhiều đặc tính, được tổ chứa thành 7
modules:










ISAS QUARTER 7 - MMS V2 NIIT CAN THO
20
CLASS B120002
- Core package : là phần cơ bản nhất của framework, cung cấp
những đặc tính IoC và Dependency Injection. Khái niệm cơ bản
là BeanFactory - cài đặt factory pattern cho phép bạn móc nối
sự phụ thuộc giữa các đối tượng trong file cấu hình.

- Core package : là Context package - cung cấp cách để truy
cập đối tượng. Context package kết thừa các đặc tính từ bean
package và thêm vào chức năng đa ngôn ngữ (I18N), truyền
sự kiện, resource-loading,
- DAO package : cung cấp cho tầng JDBC, bỏ bớt những coding
dài dòng của JDBC và chuyển đổi mã lỗi được xác định bởi
database vendor. JDBC package cung cấp cách lập trình tốt
như declarative transaction management, không chỉ cho các
lớp cài đặt các giao tiếp đặc biệt mà còn cho tất cả POJO (plain
old Java objects).
- 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 có thể sử dụng tất cả các O/R mapper đó kết hợp
với tất cả các đặc tính của Spring như declarative transaction
management.
- Spring AOP package : cung cấp aspect-oriented programming
cho phép bạn định nghĩa method-interceptor và pointcut để
móc nối các chức năng được cài đặt trong các module. Sử
dụng chức năng metadata bạn có thể kết hợp tất cả thông tin
vào code.
- Spring Web package : cung cấp đặc tính của web như: chức
năng file-upload, khởi tạo IoC container sử dụng trình lắng
nghe serlvet và web-oriented application context. Package này
để tích hợp với WebWork và Struts.
- Spring MVC package : cung cấp mô hình MVC cho ứng dụng
web. Spring MVC framework cung cấp sự phân biệt rõ ràng
giữa domain model và web form - cho phép bạn sử dụng tất cả
các đặc tính khác của Spring framework.
VI. Introduction:
- IoC Container: org.springframework.beans và

rg.springframework.context cung cấp IoC container cho Spring
framework. Giao tiếp BeanFactory cung cấp kỹ huật cấu hình
nâng cao, có khả năng quản lý các đối tượng. Giao tiếp
ApplicationContext kế thừa từ BeanFactory và thêm một vài
chức năng khác như tích hợp với đặc tính Spring AOP, truyền
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
21
CLASS B120002
sự kiện, application context như WebApplicationContext sử
dụng trong ứng dụng web.
- Container và beans:
Các đối tượng trong ứng dụng được quản lý bởi IoC
container được gọi là các bean. Một bean thì đơn giản
là một đối tượng được khởi tạo, phân phát và được
quản lý bởi IoC container. Sự phụ thuộc giữa chúng
được phản ánh trong configuration metadata được sử
dụng bởi container.
Giao tiếp
org.springframework.beans.factory.BeanFactory là IoC
container chịu trách nhiệm chứa, khởi tạo, quản lý và
móc nối sự phụ thuộc giữa các bean.
Một cài đặt (kế thừa) của BeanFactory là
XmlBeanFactory - nhận XML configuration metadata và
sử dụng nó để cấu hình cho ứng dụng. Configuration
metadata có định dạng XML (hoặc properties), được sử
dụng để viết các bean definitions cho các bean mà bạn
muốn IoC container quản lý.
Ở mức cơ bản nhất thì cấu hình IoC container phải
chứa ít nhất một bean mà container đó phải quản lý.
Khi sử dụng XML-based configuration metadata, các

bean này được cấu hình như một hoặc nhiều <bean>
element bên trong <beans> element. Các bean này
tương ứng với các đối tượng được tạo trong ứng dụng.
Ví dụ về cấu trúc cơ bản của XML-based configuration
metadata:

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="
xmlns:xsi="
xsi:schemaLocation="

/>2.0.xsd">
<bean id=" " class=" ">
<! collaborators and configuration for this bean go
here >
</bean>
<bean id=" " class=" ">
<! collaborators and configuration for this bean go
here >
</bean>
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
22
CLASS B120002
<! more bean definitions go here >
</beans>
- Khởi tạo một container : Khởi tạo IoC container thì rất dễ, sau
đây là một ví dụ về cách khởi tạo nó:
Resource resource = new FileSystemResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);

hoặc
ClassPathResource resource = new
ClassPathResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
hoặc
ApplicationContext context = new
ClassPathXmlApplicationContext(
new String[] {"applicationContext.xml", "applicationContext-
part2.xml"});

// of course, an ApplicationContext is just a BeanFactory

BeanFactory factory = (BeanFactory) context;
- Dependecy Injection :
Là các đối tượng định nghĩa sự phụ thuộc của chúng
thông qua tham số của phương thức khởi tạo
(constructor) hoặc các thuộc tính được thiết lập trên thể
hiện (instance) sau khi nó được khởi tạo hoặc trả về từ
phương thức factory. Sau đó là công việc của
container, nó sẽ đảo ngược sự phụ thuộc đó khi nó tạo
bean. Do đó nó có tên là Inversion of Control (IoC).
Có hai biến thể chính của DI là: Setter Injection và
Constructor Injection:
a. Etter Injection: Được nhận ra bởi phương thức setter
trên bean sau khi triệu gọi phương thức khởi tạo
không tham số hoặc phương thức static factory không
tham số để khởi tạo bean.
b. Constuctor injection: Được nhận ra bằng cách triệu
gọi một phương thức khởi tạo với một số tham số. Một
biến thể khác thay thế cho constructor là sử dụng

ISAS QUARTER 7 - MMS V2 NIIT CAN THO
23
CLASS B120002
phương thức static factory để trả về thể hiện của đối
tượng.
Ví dụ:
<bean id="exampleBean" class="examples.ExampleBean"
factory-method="createInstance">
<constructor-arg ref="anotherExampleBean" />
<constructor-arg ref="yetAnotherBean" />
<constructor-arg value="1" />
</bean>
<bean id="anotherExampleBean"
class="examples.AnotherBean" />
<bean id="yetAnotherBean"
class="examples.YetAnotherBean" />
public class ExampleBean {
// a private constructor
private ExampleBean(…) {
//
}

// a static factory method; the arguments to this method
can be
// considered the dependencies of the bean that is
returned,
// regardless of how those arguments are actually used.
public static ExampleBean createInstance(AnotherBean
anotherBean,
YetAnotherBean yetAnotherBean, int i) {

ExampleBean eb = new ExampleBean(…);
// some other operations
//
return eb;
}
}
Các tham số của phương thức static factory được cung
cấp thông qua constructor-arg element. Một điều quan
trọng là loại của lớp được trả về bởi phương thức
factory thì không cùng loại với lớp chứa phương thức
static factory, mặc dù trong ví dụ này thì cùng loại.
- Aspect-oriented Programming:
Kỹ thuật lập trình đưa ra cách phân chia các yêu cầu
của hệ thống. Hệ thống được phân ra thành một vài
component đảm trách một chức năng xác định. Bên
cạnh các chức năng cơ bản thì các dịch vụ (yêu cầu hệ
thống) như logging, transaction management,
security phải có trong chương trình. Các dịch vụ hệ
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
24
CLASS B120002
thống này được gọi là 'cross-cutting concern' - nghĩa là
chúng cắt chéo qua nhiều component trong hệ thống.
AOP có khả năng module hóa các service này và sau
đó cung cấp đến các component và chúng ta có thể tập
trung vào yêu cầu chính (core concern). Trong Spring,
lát cắt (aspect) được cắm vào trong các đối tượng của
XML file như các JavaBean. Tiến trình này gọi là sự
đan xen (weaving).
Container là khái niệm chính của Spring. Để quản lý

vòng đời và cấu hình các đối tượng của ứng dụng.
Chúng ta có thể cấu hình mỗi bean nên được tạo như
thế nào hoặc làm thế nào để tạo một instance của bean
hoặc làm thế nào kết hợp chúng lại. Spring không sử
dụng các EJB container hạnh nặng. Spring có 2
container phân biệt: Bean Factory được định nghĩa bởi
org.springframework. beans.factory.BeanFactory là một
container đơn giản nhất, cung cấp hỗ trợ dependency
injection. Application context được định nghĩa bởi
org.springframework.context.ApplicationContext, cung
cấp các service của application framework.
- Bean Factory:
Bean factory thì cài đặt factory design pattern và chức
năng của nó là tạo và phân phát các bean. Bean
factory biết về nhiều đối tượng trong ứng dụng, nó có
thể tạo mối kết hợp cho các đối tượng khi chúng được
khởi tạo. Điều này sẽ giảm bớt gánh nặng cho bean và
client.
org.springframework.beans.factory.xml.XmlBeanFactor
y. Nó sẽ load các bean dựa vào định nghĩa trong XML
file. Để tạo một thể hiện của XmlBeanFactory, hãy
chuyển vào constuctor của nó một InputStream.
Resource này sẽ cung cấp XML cho factory.
BeanFactory factory = new XmlBeanFactory(new
FileInputStream("myBean.xml"));
- Dòng này bảo bean factory đọc định nghĩa bean từ XML file.
Định nghĩa bean bao gồm mô tả bean và các thuộc tính của nó.
Nhưng bean factory vẫn chưa khởi tạo nó. Để rút trích một
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
25

CLASS B120002
bean từ BeanFactory, hãy gọi phương thức getBean(). Khi
phương thức getBean() được gọi, factory sẽ khởi tạo bean và
bắt đầu thiết lập các thuộc tính của nó sử dụng depedency
injection.
myBena bean1 = (myBean)factory.getBean("myBean");
- Application Context:
Trong khi Bean Factory được sử dụng cho các ứng
dụng đơn giản, thì Application Context là một container
nâng cao của Spring. Giống như BeanFactory, nó có
thể được sử dụng để load các định nghĩa bean, gắn
các bean với nhau và phân phát các bean theo yêu
cầu.
Nó cũng cung cấp:
1. Giải quyết text message, bao gồm hỗ trợ
internationlization.
2. Cách chung để load file resource.
3. Các sự kiện để bean được đăng ký như các trình lắng
nghe.
Có 3 cách sử dụng cài đặt Application Context:
1. ClassPathXmlApplicationContext: Nó load định
nghĩa context từ XML file được đặt trong classpath,
xem các định nghĩa context như các tài nguyên của
classpath. Application context thì được load từ
classpath của ứng dụng như sau:
ApplicationContext context = new
ClassPathXmlApplicationContext("bean.xml");
2. FileSystemXmlApplicationContext: Nó load định
nghĩa context từ XML file trong từ hệ thống file.
Application Context được load từ hệ thống file như

sau:
ApplicationContext context = new
FileSystemXmlApplicationContext("bean.xml");
ISAS QUARTER 7 - MMS V2 NIIT CAN THO
26
CLASS B120002
3. XmlWebApplicationContext: Nó sẽ load các định
nghĩa context từ 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.
- LDAP :
LDAP - viết tắt của Lightweight Directory Access
Protocol, hay dịch ra tiếng Việt có nghĩa là giao thức
truy cập nhanh các dịch vụ thư mục.
Là một giao thức tìm, truy nhập các thông tin dạng thư
mục trên server.
• Nó là giao thức dạng Client/Server dùng để truy cập
dịch vụ thư mục.
• LDAP chạy trên TCP/IP hoặc các dịch vụ hướng kết
nối khác.
• Là một mô hình thông tin cho phép xác định cấu trúc
và đặc điểm của thông tin trong thư mục.
• Là một không gian tên cho phép xác định cách các
thông tin được tham chiếu và tổ chức
• Một mô hình các thao tác cho phép xác định các tham

chiếu và phân bố dữ liệu.
• Là một giao thức mở rộng
• Là một mô hình thông tin mở rộng.
Ở đây chúng ta cần tránh hiểu nhầm từ "thư mục" như
trên Windows là folder hay directory, đó là thư mục
theo nghĩa hẹp để quản lý hệ thống tệp tin. Từ thư mục
trong LDAP mang ý nghĩa rộng hơn, nó bao hàm các
cấu trúc dữ liệu dạng liệt kê theo thư mục (hay mục lục)
- một "từ khoá" của dân thư viện nhằm ám chỉ cách
thức sắp xếp dữ liệu để tiện truy xuất nhất.
- Phần này cung cấp một cái nhìn tổng quan về cấu trúc
Package Spring LDAP:
org.springframework.transaction.compensating

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×