该用户从未签到
|
用过spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好)。以至于有的初学者都不知道Spring配置文件的意思,就拿来用了。所以今天我给大家详细解释一下Spring的applicationContext.xml文件。Ok,还是通过代码加注释的方式为大家演示: ( H! F; r8 V$ j$ q
/ {* p; O; @8 w9 T( w z) p# ~
以下是详解Spring的applicationContext.xml文件代码:- <!-- 头文件,主要注意一下编码 --> M. @" Q7 Q2 p" b. y
- <?xml version="1.0" encoding="UTF-8"?>
4 s( B3 W: M) T. @, y - <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">) ~/ m9 S1 Y% B' y1 S) A9 n7 C
- <beans>: [: [6 M" l9 A! A
- <!-- 建立数据源 -->4 X. _ D( H9 q! C3 X
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">. ]0 X8 Q3 [& P' E7 x
- <!-- 数据库驱动,我这里使用的是Mysql数据库 -->
% K/ l3 ]) @; Q/ j( r- A9 `3 o - <property name="driverClassName">* I0 z# G9 \5 ~) M# `( g
- <value>com.mysql.jdbc.Driver</value>3 |0 i# U' h* w7 G [
- </property>
! ^, Y$ F7 T' ]) e - <!-- 数据库地址,这里也要注意一下编码,不然乱码可是很郁闷的哦! -->
6 N' p+ N! n% O* J0 E- v - <property name="url">6 g0 V7 u+ j8 y
- <value>
# d3 D. e) B( I3 C3 k# R - jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8
$ i% v7 T& k. D m, m- O: i" ^1 W - </value>
7 l* y" }/ r# q( A8 j7 ?% \ - </property>
, `" ?0 D# c5 e& h9 O" O - <!-- 数据库的用户名 -->5 Q( F$ X9 m$ P' a: i+ I i0 h
- <property name="username">1 R4 W& U2 F( }2 a; U% ^5 R
- <value>root</value> @+ G0 T0 w% U! G! s; R
- </property>' v& c2 L. r; b; T
- <!-- 数据库的密码 -->
) N: a, A3 u5 i( S - <property name="password">$ m1 M J7 h8 |& ^
- <value>123</value>
7 K3 u4 g/ x9 N2 T3 R - </property>1 ~+ l* O" ?4 ~
- </bean>$ J6 H" D9 H# |) [- N
- <!-- 把数据源注入给Session工厂 -->
0 b# c4 h! H3 U" f# f! W9 o - <bean id="sessionFactory"3 M) W1 @5 Y4 Q1 e c. R
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">( T8 d# S8 E2 y! K& G) N
- <property name="dataSource">
. a! C2 O' J f# N: ? - <ref bean="dataSource" />: M0 W1 P( n/ Z# X( w3 B7 n( H2 K
- </property>
6 ]: f$ K9 r# |4 f2 k - <!-- 配置映射文件 -->
$ b6 d$ C% l% O; Z, m7 w - <property name="mappingResources">6 `7 b, d$ W2 V& u
- <list>
* J' v4 F2 d* G2 \6 x - <value>com/alonely/vo/User.hbm.xml</value>
) j: r9 _$ D5 V$ K7 S; c m - </list>
$ R) T W8 r, U+ N - </property>" W4 i4 V. L' d, Z& T
- </bean>
1 s$ t% o! b& i1 h - <!-- 把Session工厂注入给hibernateTemplate -->
" n# B* {# k; t2 J% I5 c2 S, J - <!-- 解释一下hibernateTemplate:hibernateTemplate提供了很多方便的方法,在执行时自动建立 HibernateCallback 对象,例如:load()、get()、save、delete()等方法。 -->
* o: ?. D! C1 N& E% P" H - <bean id="hibernateTemplate"* h( v2 i) t! R! @
- class="org.springframework.orm.hibernate3.HibernateTemplate">
Z2 O0 Q0 y: p; Y) m3 X* q, \- E! _ - <constructor-arg>6 {2 |3 Y3 U+ `: b$ V- ^
- <ref local="sessionFactory" />) |" Y/ H6 k0 Q. b
- </constructor-arg>& i/ n/ |7 c6 Y0 j5 J. m" H
- </bean>
# m& b: Z. Z. b( L' d - <!-- 把DAO注入给Session工厂 -->' w2 o1 W& Q& W* A: o5 _
- <bean id="userDAO" class="com.alonely.dao.UserDAO">
# j0 g" g' t6 P- ?, f - <property name="sessionFactory">% \1 N4 x1 P, G9 S& P
- <ref bean="sessionFactory" />% |+ L& I% E6 Z; ` V8 z2 |: @2 C* X
- </property>
7 n' V1 `2 I' Z7 q3 @ - </bean>
/ M' K$ _9 l3 }; P& E6 p - <!-- 把Service注入给DAO -->2 p4 g: A; w" O a
- <bean id="userService" class="com.alonely.service.UserService">
8 @& o/ G! ?0 m' ]+ W( T - <property name="userDAO">' S' @/ {6 b8 B
- <ref local="userDAO" />
6 C# ~+ r, c8 ` a, f - </property>
6 q9 `* B: J" }) U - </bean> C D. y; U ?' F
- <!-- 把Action注入给Service -->
# x' W8 \( y) |" O9 C - <bean name="/user" class="com.alonely.struts.action.UserAction">5 i. m0 J8 n- o6 h2 z
- <property name="userService">) z( F7 w, G* L9 j
- <ref bean="userService" />4 }: E, f' L' N$ R# Y+ V
- </property>
3 b# d4 b( Y2 e% \. } - </bean>+ p" H/ K& X+ k8 e2 @7 F% q
- </beans>
复制代码 2 A' @% \. v" C! ~7 E9 c
以上Spring的applicationContext.xml文件我是用的SSH架构,如果您用Spring的MVC架构,其原理也是一样的。 $ L9 G' q0 m% L! p( a' U n( A
|
|