该用户从未签到
|
用过spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好)。以至于有的初学者都不知道Spring配置文件的意思,就拿来用了。所以今天我给大家详细解释一下Spring的applicationContext.xml文件。Ok,还是通过代码加注释的方式为大家演示: 2 R# o$ N$ }+ y W% `1 E
7 | M$ q& ^/ \* V以下是详解Spring的applicationContext.xml文件代码:- <!-- 头文件,主要注意一下编码 -->
; c" X5 x+ t6 R+ M - <?xml version="1.0" encoding="UTF-8"?># u) b1 l2 D9 C! h ?) D) p
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">; R$ T( P9 \5 s# w6 r
- <beans>" U) v+ H0 U- F+ R, b) _1 Q
- <!-- 建立数据源 --># C" K3 g/ e+ X2 b$ v( G
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
6 C$ `/ T- G$ | - <!-- 数据库驱动,我这里使用的是Mysql数据库 -->* I; R7 T8 y1 f) e# s
- <property name="driverClassName">& g) I# t" v6 h
- <value>com.mysql.jdbc.Driver</value>! h: p2 D2 [, R# L; K- c6 B
- </property>/ p* k, O, h0 a {. j) t
- <!-- 数据库地址,这里也要注意一下编码,不然乱码可是很郁闷的哦! -->, R6 Y5 S' U8 Z; }- ?! _
- <property name="url">
6 H" b- z, f, n! t9 x( B( E - <value>
+ a1 N; x1 c& ^% v1 K2 Z/ z - jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8
( J! e/ f2 u* J! G# {% } - </value>
8 f/ W, B& T0 x& e3 P. G - </property># l2 o. Z( ^5 J& X2 e* c/ p
- <!-- 数据库的用户名 -->
# `7 t3 C) L; N - <property name="username">
1 m* \4 x! p) y3 u. {3 } - <value>root</value>" z; P- c) W) D% Y
- </property>* |* W& G8 S8 D7 e8 i" ]
- <!-- 数据库的密码 -->
# {* O3 j( m. j* o8 h - <property name="password">: M* o: ~. k+ E4 ]3 ]3 k
- <value>123</value>9 a: n; [/ y5 j q! ~. L$ n
- </property>
/ P# Q% T! A* S# v" H - </bean>5 W6 Z; g; {$ A6 H, \
- <!-- 把数据源注入给Session工厂 -->8 ]( c0 {1 s2 S' g6 ^3 d/ b% W( d
- <bean id="sessionFactory"# G" \* x( J. \% A8 Q
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">0 q# |( o. `1 c4 _; B1 I, l
- <property name="dataSource">
6 @6 G3 k* z" {* F! @ - <ref bean="dataSource" />0 O! I8 ~ x2 ^ W
- </property>
3 z& V E7 y8 ~5 K - <!-- 配置映射文件 -->- z6 t, c& q2 j; j% R6 C5 t
- <property name="mappingResources">
% |" u8 w+ d/ n) U - <list>( B2 b. `+ a) g. x, o$ w9 y" a$ ]" q
- <value>com/alonely/vo/User.hbm.xml</value>$ _' j& N0 n+ P& v+ \; n; x( `, ~3 A
- </list>1 B0 t9 o% S1 @9 n9 G% m
- </property>
5 e& ]6 ?$ Y5 g7 n) ^! H2 e% X - </bean>
7 G* J& E" U H; } - <!-- 把Session工厂注入给hibernateTemplate --> V- o% q7 t: R7 V S, V
- <!-- 解释一下hibernateTemplate:hibernateTemplate提供了很多方便的方法,在执行时自动建立 HibernateCallback 对象,例如:load()、get()、save、delete()等方法。 -->
$ Q& w8 Y h0 L1 E - <bean id="hibernateTemplate"% |( D) p; ~; U, Q- w: j
- class="org.springframework.orm.hibernate3.HibernateTemplate">
- |# [/ G* X+ \6 j4 n! u - <constructor-arg>
T" O; X3 y$ L2 P7 |/ ?) c2 J4 g - <ref local="sessionFactory" />3 [& e4 s u# [, U' Y3 l
- </constructor-arg>
2 _6 B1 C7 g" v& u - </bean>
9 l/ k/ T8 S& G8 y L" I - <!-- 把DAO注入给Session工厂 -->
) A1 K: l8 h( I: l& q - <bean id="userDAO" class="com.alonely.dao.UserDAO">3 b/ p3 Q6 L8 v+ r5 L; N& r
- <property name="sessionFactory">
6 D) Q# L) I' [9 w - <ref bean="sessionFactory" />
# E# @" k: Z- e0 b1 z - </property>
! }7 C; H% |& a" a' J* y- ? - </bean>
& M7 s$ m' d7 z, N - <!-- 把Service注入给DAO -->) C0 {4 z: N" r5 `
- <bean id="userService" class="com.alonely.service.UserService">1 ?" _. h) Q; Q6 \$ o2 z# @1 [
- <property name="userDAO">
# k7 H `) s+ d6 G3 k8 T" r' Q - <ref local="userDAO" />0 N4 m0 b( H* O) S; n
- </property>4 v9 ?8 ~, J% G5 Y: z
- </bean>: Q0 m7 J! `, P/ ?, s
- <!-- 把Action注入给Service -->
7 q% v3 I! y x8 |: X - <bean name="/user" class="com.alonely.struts.action.UserAction">
2 w- [! d- S# ]! w - <property name="userService">
6 _' E& u8 w1 d H; d - <ref bean="userService" />7 V G; y3 u7 O) G
- </property>3 p. l: N+ E! U" k9 v
- </bean>
* Z8 d' w8 ~/ [9 P/ k - </beans>
复制代码 : B2 A/ u# D( m# {5 \" n: \6 ~
以上Spring的applicationContext.xml文件我是用的SSH架构,如果您用Spring的MVC架构,其原理也是一样的。 9 h( o: ^' U! [# U3 P% D \
|
|