该用户从未签到
|
用过spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好)。以至于有的初学者都不知道Spring配置文件的意思,就拿来用了。所以今天我给大家详细解释一下Spring的applicationContext.xml文件。Ok,还是通过代码加注释的方式为大家演示:
' P4 R( @2 j& c* W" o3 @( v- l4 u* `0 S- C) x+ k
以下是详解Spring的applicationContext.xml文件代码:- <!-- 头文件,主要注意一下编码 -->
' P8 |5 ]# r& }( Y% T7 c. [9 A - <?xml version="1.0" encoding="UTF-8"?>" }! B8 t* o: Z, z# a" s G
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">. D1 w. W) Z5 D3 j
- <beans>/ u8 ^3 a+ O6 i/ p1 }: {
- <!-- 建立数据源 -->: o6 c4 p3 k( s8 c. F% U8 [
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">' L& K6 q0 ^! m0 E
- <!-- 数据库驱动,我这里使用的是Mysql数据库 -->
# @0 k) X d- M8 [# l2 C* s - <property name="driverClassName">
# _* G: k( L- C - <value>com.mysql.jdbc.Driver</value>
3 U4 R3 A' K* h - </property>
" g$ e8 Q# r. ^. ?: f) ^9 t V - <!-- 数据库地址,这里也要注意一下编码,不然乱码可是很郁闷的哦! -->2 _; k) g& n# x* G5 ]7 c
- <property name="url">
& j% |5 T q9 K: t- t - <value>
4 V* N9 R1 V1 x% S k! o- s6 o - jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8. K. J, n' L# H$ B7 {/ v
- </value>
- j5 V, p) \2 G, G% d - </property>$ h) b$ n6 Y9 `$ d
- <!-- 数据库的用户名 -->7 ^" I! X) R3 h# B& h0 A+ R3 i
- <property name="username">
9 ^0 C8 \. m& j+ X - <value>root</value>
7 \ ~% B. `1 _ - </property># W# K. b9 _1 L7 U3 i& X
- <!-- 数据库的密码 -->
; P) U9 f) ~1 \1 _; |* F - <property name="password">
1 {4 \& G# h/ P- |$ R - <value>123</value>. n8 u+ I( c- F+ W0 {# w
- </property>
4 J+ C% B4 O) ^ - </bean>
6 `+ J- g+ ?5 p - <!-- 把数据源注入给Session工厂 -->
) R A* ?" p/ U7 P3 s1 [ - <bean id="sessionFactory"% _- G% L" b7 Z2 F$ w
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
& b% U( ~1 Y! L, ?& O( e/ M$ l, v - <property name="dataSource">( j- e* j* U. e( r1 C
- <ref bean="dataSource" />+ r% n) r. y& X
- </property>
' R* _5 Z# V- G, | - <!-- 配置映射文件 -->. B7 H# f" ]% D
- <property name="mappingResources">
. v* p* h" S$ s! t# P) z/ U. _4 H' W - <list>+ s7 i: {' t* L3 V
- <value>com/alonely/vo/User.hbm.xml</value>3 ^( K/ g) x7 O+ D: r; w3 ?
- </list>
& @. T2 R- `2 A( N - </property>
6 H. N1 l' c/ @ - </bean>5 M( O8 S8 T) [1 w, O# S1 w2 y: d7 C, J
- <!-- 把Session工厂注入给hibernateTemplate -->
, v4 X; T0 d6 Z5 ^ - <!-- 解释一下hibernateTemplate:hibernateTemplate提供了很多方便的方法,在执行时自动建立 HibernateCallback 对象,例如:load()、get()、save、delete()等方法。 -->
& j" H% p; j! j1 D - <bean id="hibernateTemplate"3 d8 j3 g. p+ @9 q
- class="org.springframework.orm.hibernate3.HibernateTemplate">7 m7 y4 B8 b# J v9 p
- <constructor-arg># a; i( P) ]- F7 A
- <ref local="sessionFactory" />
( P+ A2 i, ]% [, K - </constructor-arg>& C! @: ^" J9 b- ^' A* `3 I3 O7 l
- </bean>
, m! j- c+ a$ p+ L x - <!-- 把DAO注入给Session工厂 -->
* I6 t0 f% u W' [& J - <bean id="userDAO" class="com.alonely.dao.UserDAO">
0 b- |5 a7 ^' [/ u V5 f - <property name="sessionFactory">
1 m0 {! J) r& p3 c, @0 s3 Y - <ref bean="sessionFactory" /> x: |; ^5 Z& X' g
- </property>+ J3 Y( \: s' a2 P E8 B
- </bean>
0 u: m) E6 v g+ S: b. w0 ?, z - <!-- 把Service注入给DAO --># O/ A* U+ T& A* A
- <bean id="userService" class="com.alonely.service.UserService">
/ }$ H* W% z! D) U5 h' d0 G - <property name="userDAO"># }+ S& c& [. `# ]7 r- M3 p9 k
- <ref local="userDAO" />/ c( w; @. f0 k& U8 E6 H2 {
- </property>2 g, d3 [( _" T7 I1 O0 P
- </bean>
+ U# q t8 I6 N4 B+ L# I - <!-- 把Action注入给Service -->
* Y* s9 x1 x- E - <bean name="/user" class="com.alonely.struts.action.UserAction">+ j3 E; f: a, S. a$ S2 o/ ?, \
- <property name="userService">4 s. a) e5 w* [' D$ {
- <ref bean="userService" />& C' z2 Q, k8 H6 W( o" E
- </property>
$ x5 h0 S1 k! | - </bean>
, {- o6 O8 [- L! q - </beans>
复制代码 " m' A) k/ z5 Y& O5 F0 A- B! U0 F
以上Spring的applicationContext.xml文件我是用的SSH架构,如果您用Spring的MVC架构,其原理也是一样的。 # t. [( j0 ]4 L6 _- E
|
|