Professional Documents
Culture Documents
Mc lc
I.
2.
3.
II.
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
L do s dng. .................................................................................................................................. 7
Spring Web MVC. ................................................................................................................................ 7
1.
1.2.
1.3.
2.
3.
3.2.
Bean : ...................................................................................................................................... 10
3.3.
3.3.1.
3.3.2.
3.4.
4.
C ch x l Request-Respone. ...................................................................................................... 15
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
I.
Spring Framework.
1. Gii thiu.
Spring Framework, hay ngn hn l Spring, l mt framework m
ngun m c vit bng Java. N c xem nh l mt gii php
kin trc tt nht ca Java EE hin nay.
Theo thit k, b khung hnh ny gii phng lp trnh vin dng
Java, cho php h nhiu quyn t do hn.
ng thi cung cp mt gii php tin li, y dn chng bng
ti liu, d dng s dng, ph hp vi nhng thc hnh thng dng
trong cng ngh phn mm.
2. Cc module chnh.
Spring ng vai tr l tng business.
2.1.
Core Container.
Core package l phn c bn nht ca framework,
cung cp nhng c tnh IoC (Inversion of Control:
Khung cha o ngc khng ch) v Dependency
Injection.
2.2.
2.3.
Spring DAO.
DAO package cung cp cho tng JDBC, b bt nhng
coding di dng ca JDBC v chuyn i m li c
xc nh bi database vendor. JDBC package cung cp
cch lp trnh tt nh declarative transaction
management.
Tng JDBC v DAO a ra mt cy phn cp
exception qun l kt ni n database, iu khin
exception v thng bo li c nm bi vendor ca
database. Tng exception n gin iu khin li v
gim khi lng code m chng ta cn vit nh m v
ng kt ni. Module ny cng cung cp cc dch v
qun l giao dch cho cc i tng trong ng dng
Spring.
2.5.
Spring ORM.
ORM package cung cp tng tch hp vi objectrelational mapping API bao gm: JDO, Hibernate,
iBatis.
S dng ORM package bn c th s dng tt c cc
object-relational mapping kt hp vi tt c cc
c tnh ca Spring nh declarative transaction
management.
2.6.
2.7.
1.1.
Model (M hnh).
1.3.
Controller (B iu khin) :
ng b ho gia Khung nhn v M hnh. Tc l vi mt trang
JSP ny th s tng ng vi lp java no x l n v ngc
li, kt qu s tr v trang jsp no.N ng vai tr iu tit gia
View v Model.
Nh vy, chng ta c th tch bit c cc m java ra khi m
html. Do vy, n gii quyt c cc kh khn nu ra trong
M hnh 1. Ngi thit k giao din v ngi lp trnh java c
th mang tnh cht c lp tng i.
Vic debug hay bo tr s d dng hn, vic thay i cc theme
ca trang web cng d dng hn
2. Spring MVC.
Framework Spring nh thng cha nh v h tr nhiu
framework v cc th vin. N cho php cc nh pht trin trn
v kt hp nhiu framework khi pht trin v trin khai cc ng
dng. Cc Spring MVC c nhng li th t Spring framework v
8
3.2.
Bean :
Cc i tng trong ng dng c qun l bi IoC container
c gi l cc bean. Mt bean th n gin l mt i tng
c khi to, phn pht v c qun l bi IoC container. S
ph thuc gia chng c phn nh trong configuration
metadata c s dng bi container.
Giao tip org.springframework.beans.factory.BeanFactory l IoC
container chu trch nhim cha, khi to, qun l v mc ni s
ph thuc gia cc bean.
Mt ci t (k tha) ca BeanFactory l XmlBeanFactory nhn XML configuration metadata v s dng n cu hnh
cho ng dng.
Configuration metadata c nh dng XML (hoc properties),
c s dng vit cc bean definitions cho cc bean m bn
mun IoC container qun l.
mc c bn nht th cu hnh IoC container phi cha t nht
mt bean m container phi qun l. Khi s dng XML-based
configuration metadata, cc bean ny c cu hnh nh mt
hoc nhiu element bn trong element. Cc bean ny tng ng
vi cc i tng c to trong ng dng.
3.3.
12
<beans>
<bean
name="fileDataProcessor
class="examples.spring.DataProcessor"
singleton="true">
<constructor-arg>
<ref bean="fileDataReader"/>
</constructor-arg>
</bean>
<bean
name="fileDataReader"
class="examples.spring.FileDataReader" singleton="true">
<constructor-arg>
<value>/data/file1.data</value>
</constructor-arg>
</bean>
</beans>
Gii thch on code trn :
FileDataReader fileDataReader = new
FileDataReader(/data/file1.data);
13
Application Context :
Trong khi Bean Factory c s dng cho cc ng dng n
gin, th Application Context l mt container nng cao ca
Spring. Ging nh BeanFactory, n c th c s dng load
cc nh ngha bean, gn cc bean vi nhau v phn pht cc
bean theo yu cu.
N cng cung cp:
-
ClassPathXmlApplicationContext:
FileSystemXmlApplicationContext:
14
3.4.1.3.
XmlWebApplicationContext:
15
4.1.
ModelAndView.
4.Gi ModelAndView c gi tr v DispatcherServlet.
5.DispatcherServlet gi gi ModelAndView cho ViewResolver
tm xem trang web (JSP) no s c load ln.
DispatcherServlet load trang web ln cng vi d liu ca n.
4.2.
Configuring DispatcherServlet :
DispatcherServlet ng vai tr nh tri tim ca Spring MVC.
Mt servlet c chc nng ging nh Spring MVCs front
controller. Ging nh bt k servlet no, DispatcherServlet phi
dc cu hnh trong web.xml file.
<servlet>
<servlet-name>roadrantz</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
16
<load-on-startup>1</load-on-startup>
</servlet>
Theo mc nh, khi DispatcherServlet c np, n s ti cc ng
dng Spring context t file XML c tn da vo tn ca servlet.
17
th
bn
mun
ghi
mc
nh
ny.
/WEB-INF/roadrantz-data.xml
/WEB-INF/roadrantz-security.xml
</param-value>
</context-param>
Cc tham s contextConfigLocation c quy nh nh mt danh
sch cc ng dn (lin quan n ng dng web gc). Khi cu
hnh y, b ti bi cnh s s dng contextConfigLocation
ti tp tin cu hnh ba bi cnh , mt cho Security Layer, mt cho
cc tng dch v(Service Layer), v mt cho cc lp d liu (data
layer).
DispatcherServlet by gi l cu hnh v sn sng gi yu cu
n lp ng dng web ca bn. Nhng lp web cha c
xy dng ! ng bn khon. Chng ti s xy dng nhiu lp
web trong chng ny. Hy bt u bng cch cm nhn c
mt ci nhn tng quanlm th no tt c cc mnh ca Spring
MVC c lp rp sn xut cc chc nng web.
4.4.
19
4.5.
Introducing ModelAndView :
Mt khi cc logic nghip v c hon thnh bi cc i
tng dch v, l thi gian cho b iu khin gi kt qu
tr li trnh duyt. Cc ModelAndView lp i din cho mt
20
4.6.
21
this.ds = ds;
}
Khng cn thay i code java khi thay i datasource :
<beans>
<bean
name="dataSource"
class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
destroy-method="close">
<property name="url">
<value>jdbc:mysql://localhost/test</value>
</property>
<beans>
<bean id="prodManDao" class="db.ProductManagerDaoJdbc">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
22