该用户从未签到
|
用过spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好)。以至于有的初学者都不知道Spring配置文件的意思,就拿来用了。所以今天我给大家详细解释一下Spring的applicationContext.xml文件。Ok,还是通过代码加注释的方式为大家演示:
' G% w0 ^* k/ {/ t, u: x. i/ c3 r, O$ ^" Q2 L) P% b
以下是详解Spring的applicationContext.xml文件代码:- <!-- 头文件,主要注意一下编码 -->. ?- H/ \) B5 K' m$ q- i3 O
- <?xml version="1.0" encoding="UTF-8"?>9 Y+ c4 D6 s$ D
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
) c3 R4 N$ F/ R1 U- x \ - <beans>+ j7 ?9 p3 Z+ O% G- j3 p1 o3 k$ R# y1 o$ C
- <!-- 建立数据源 -->3 F6 |$ M5 ]( d& v
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
+ i8 |# ?4 x" [$ U' h1 W ? - <!-- 数据库驱动,我这里使用的是Mysql数据库 -->, J5 p; A: D G* g w) J0 z4 R2 R
- <property name="driverClassName">
! p# ~8 k: Y# x* H% l" S2 L - <value>com.mysql.jdbc.Driver</value>8 Z- T* P# j/ o f- m3 F4 M- m
- </property>
) }, @5 @# a- t4 j2 K - <!-- 数据库地址,这里也要注意一下编码,不然乱码可是很郁闷的哦! -->! m7 j6 @7 U- l. T" i
- <property name="url">
9 S# y8 N) C. P9 q1 w% ^% k - <value>
, l# b5 K' d) ]# M/ u! J' s - jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8
: H2 ]! C' U( T& T( O* r3 w - </value>1 J/ F4 I1 e+ n, E
- </property>8 c. S* n* z" A% g* _3 _, Z
- <!-- 数据库的用户名 -->9 H( u$ R5 G& }5 t# T& N2 p4 U5 [
- <property name="username">3 W9 i: K, `* F# G# ~1 y, S
- <value>root</value>: X, y% p c2 }! f5 b8 h
- </property>2 ]4 Y9 @ z* W5 D0 Q
- <!-- 数据库的密码 -->) w. Y1 M- ^+ J. v
- <property name="password">$ M+ P6 P! I# I2 q: z& W
- <value>123</value>
4 {# o7 n+ {4 g! e/ ]- Y - </property>
' N6 g* R- x! o7 [ - </bean>9 [) U( R+ W0 P# L( V
- <!-- 把数据源注入给Session工厂 -->
6 k1 Q- }' N2 C8 P - <bean id="sessionFactory"6 m3 J, s& _. w% B/ Q
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
* l# n& T% e$ P0 z7 i$ P% d, Z' n% \ - <property name="dataSource">* i, k& F; T5 U$ h- J3 K
- <ref bean="dataSource" />
( I$ T7 |4 K' R- s4 X3 z - </property>' [7 ^% s: B% e3 }( {% [9 p6 @
- <!-- 配置映射文件 -->9 G$ W t1 t7 o4 {3 l
- <property name="mappingResources">4 e# d# G% D" p5 r
- <list>
" R* I9 j# m7 g& u - <value>com/alonely/vo/User.hbm.xml</value>
9 u) y1 q7 M. Q" |' `; T4 v - </list>
4 t% P* p, h Z) [ - </property>
3 L1 ^6 n8 [4 z% |2 s3 ]% a - </bean>
; U% ^' ?5 ?9 ~0 H0 N# G - <!-- 把Session工厂注入给hibernateTemplate -->
5 @$ h0 l6 O5 h( y - <!-- 解释一下hibernateTemplate:hibernateTemplate提供了很多方便的方法,在执行时自动建立 HibernateCallback 对象,例如:load()、get()、save、delete()等方法。 -->
+ W r" M0 ]/ q, _% R - <bean id="hibernateTemplate"* d# F: Z) D0 l3 l5 K6 z
- class="org.springframework.orm.hibernate3.HibernateTemplate">
2 D" R5 U7 T N9 q - <constructor-arg>' k$ U& f# K# k% M% ~
- <ref local="sessionFactory" />
" Z" {0 W( a: O* b/ N6 F - </constructor-arg>' w% W* B8 O% q+ V* |. M
- </bean>
; e$ e8 G2 E+ D8 P6 T: l - <!-- 把DAO注入给Session工厂 -->/ R- S6 Z7 n. j+ \( g. {9 j1 P
- <bean id="userDAO" class="com.alonely.dao.UserDAO">
1 J4 T/ p9 H) t$ T7 C0 p - <property name="sessionFactory">+ g8 i0 v/ j3 w. n- {
- <ref bean="sessionFactory" />
. t- {3 _, Q& p- L - </property>! m) s1 j0 U$ _+ k
- </bean>
- l! ~: Q+ j- l: z( G - <!-- 把Service注入给DAO -->' I" a' a+ @9 f) }
- <bean id="userService" class="com.alonely.service.UserService">
' v1 e7 G7 i! d5 z w9 R - <property name="userDAO">: g7 s! ~1 \. L8 w$ m# r2 A
- <ref local="userDAO" />- m& Q4 N3 S8 g
- </property>
' y+ v) v6 c% F* ]8 d - </bean>, m- R+ w7 u i
- <!-- 把Action注入给Service -->* v6 P# w% H. G9 o# q R
- <bean name="/user" class="com.alonely.struts.action.UserAction">7 ~7 @& O: I m" ?/ L- v' o
- <property name="userService">3 g9 x. z: l, a
- <ref bean="userService" />
) i, H* _! J% K% J - </property>
0 _; ~" A3 {. c( f5 U- v4 p - </bean>- N r) S/ B2 T' w' {
- </beans>
复制代码 & ^# i6 C( N/ P/ T
以上Spring的applicationContext.xml文件我是用的SSH架构,如果您用Spring的MVC架构,其原理也是一样的。 % ^- x1 h e3 Q0 x! V- J
|
|