该用户从未签到
|
用过spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好)。以至于有的初学者都不知道Spring配置文件的意思,就拿来用了。所以今天我给大家详细解释一下Spring的applicationContext.xml文件。Ok,还是通过代码加注释的方式为大家演示:
1 p& B! z J# I0 g! P5 K0 c6 N7 k& z n
以下是详解Spring的applicationContext.xml文件代码:- <!-- 头文件,主要注意一下编码 -->- H" [: U+ R8 X( F+ { A' i0 m9 o
- <?xml version="1.0" encoding="UTF-8"?>
2 [7 E# a" S$ G5 W% s - <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
4 t7 F, D) `& I2 I - <beans>
( J" J1 p6 o' i. Z: ~) u - <!-- 建立数据源 -->) c+ p. N2 D2 i+ P x
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">" x, ?' S8 @; {
- <!-- 数据库驱动,我这里使用的是Mysql数据库 -->' [8 a' }7 l( k0 l- L$ D
- <property name="driverClassName">
) f9 N% L: {5 C6 c1 ~* ?. C - <value>com.mysql.jdbc.Driver</value>
0 T6 w- a+ C/ E" x- d - </property>' z$ D3 {' @* y
- <!-- 数据库地址,这里也要注意一下编码,不然乱码可是很郁闷的哦! -->: C/ m% u& p' s+ H$ W
- <property name="url">
, e( p6 X# J; m - <value>. S1 \3 U& P; `6 o* W( H
- jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8
4 l6 l/ X1 r' d& } - </value>
) d% o8 T+ Q8 X; }+ k - </property>
c. y3 Z# e" A; p! a" Y8 U) |. S2 U$ _/ J - <!-- 数据库的用户名 -->
: s9 ]7 ^5 A2 M6 v. M( p: q - <property name="username">
( U' `+ P% d3 ^ - <value>root</value>
# D0 S! A5 o/ M: [1 g8 W8 \7 T9 i# \ - </property>
5 o9 Z6 W8 _# f+ V; ~ - <!-- 数据库的密码 -->
5 w. |* ~0 e( B4 x7 O - <property name="password">
/ G: H' W t& j4 i# k7 V - <value>123</value>( P" l* A. o0 D6 ~1 N
- </property>
- Z( V! f: T9 ]7 }3 {9 ]7 N1 t - </bean>
$ p7 H0 o7 {) n4 \5 j- D4 @7 n5 d - <!-- 把数据源注入给Session工厂 -->
! m* |0 a1 N" K. g- `6 b+ d - <bean id="sessionFactory"8 O8 m+ Q3 o/ X: W o# Z4 J" p1 _
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
3 r, w/ E' D; r- e( s; G6 ?1 u - <property name="dataSource">
! r. d3 s* i3 c+ p1 D; O) m* ^6 v H - <ref bean="dataSource" />' f0 v+ n2 J7 O) X
- </property>
/ o n' K! {* {! e* W0 | - <!-- 配置映射文件 -->
' x6 B% Y5 V& [/ y - <property name="mappingResources">. g2 ^) |/ Z* c' J' I! K
- <list>6 @1 V# a! B5 b, F- ^7 M
- <value>com/alonely/vo/User.hbm.xml</value>
9 \4 d2 ?5 ?4 [: P# l - </list>
# o2 {1 v8 e) {3 k" j - </property>$ V- z5 ~& S+ M0 `& C. n
- </bean>- t j; b4 C8 m7 j. _, K8 o* M: U" N
- <!-- 把Session工厂注入给hibernateTemplate -->
# v9 R+ f3 v1 T7 L0 z1 r - <!-- 解释一下hibernateTemplate:hibernateTemplate提供了很多方便的方法,在执行时自动建立 HibernateCallback 对象,例如:load()、get()、save、delete()等方法。 -->
$ V8 U* M" w S1 \9 A* u, g$ a# G - <bean id="hibernateTemplate"9 X' R* R$ B0 Q6 w, f; q
- class="org.springframework.orm.hibernate3.HibernateTemplate">, L7 T6 Z/ e3 m9 |- n% u
- <constructor-arg>
1 i1 f' G% A7 `6 E - <ref local="sessionFactory" />
$ K% m- T% [8 y u- J7 E - </constructor-arg>
1 @# I. G& Z) p" a8 `, ?. E - </bean>
* o1 K4 ?! X+ f9 z f - <!-- 把DAO注入给Session工厂 -->6 D1 W6 c( u5 [
- <bean id="userDAO" class="com.alonely.dao.UserDAO">
" z9 _3 g' |3 c, V - <property name="sessionFactory">. P; K) K9 F& B Q! d% k& n/ C+ L
- <ref bean="sessionFactory" />: l, a3 j# W7 z" h/ s9 \
- </property>& Q& W8 @4 Q; G. B- L/ V( R
- </bean>
/ R2 D! `1 N }( h2 m' u& S# a- l - <!-- 把Service注入给DAO -->
( t' s0 v7 v3 | - <bean id="userService" class="com.alonely.service.UserService">" n0 S I# ^8 l! D4 k
- <property name="userDAO">: b2 H, ?. H, ^$ b- _
- <ref local="userDAO" />
0 j/ G( _8 g; v) e" I - </property>! y4 p* ]) u' r
- </bean>
! f* V* n, V, M8 \8 s - <!-- 把Action注入给Service -->6 P* \: U! d* Z( a1 d
- <bean name="/user" class="com.alonely.struts.action.UserAction">' G4 X X0 h4 b
- <property name="userService">
) _! n9 r6 \3 ] - <ref bean="userService" />
! s6 R1 X$ s# M% m' m - </property>
, v$ j2 L V* i: [& h - </bean>
$ g! Z+ U% e" m! s/ v' p1 E7 x. _ - </beans>
复制代码 - B$ ^3 {( F8 }9 J% w4 H' ]9 W3 }
以上Spring的applicationContext.xml文件我是用的SSH架构,如果您用Spring的MVC架构,其原理也是一样的。
3 `- G& |0 w' c" t |
|