TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
web.xml中classpath:和classpath*:有什么区别?9 C+ E0 Q$ L3 p3 E
classpath:只会到你的class路径中查找找文件;
+ i2 X" G( I" N) z8 \- Aclasspath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.
5 F! U4 P( E8 |存放位置:( h1 I' ~& z a" M; i
1:src下面 需要在web.xml中定义如下: ` K* T9 S; ^. l
<context-param># L& T+ K J3 T# w j
<param-name>contextConfigLocation</param-name>. ^$ h$ ]3 K; r; B% X7 P
<param-value>classpath:applicationContext.xml</param-value>8 [- Z0 @3 r; O
</context-param># P; I, m* d: k e L
2:WEB-INF下面 需要在web.xml中定义如下:2 V$ i% m8 w0 m. \. t$ \3 g
<context-param>
) ]4 X# a3 F2 B, Y7 K) X<param-name>contextConfigLocation</param-name>
1 C$ D$ H4 S% o( z& T9 T8 o2 H<param-value>WEB-INF/applicationContext*.xml</param-value>
. X! U$ L: H' A( L$ g5 w& {# h</context-param>
4 P9 ~" I; i) ^0 Kweb.xml通过contextConfigLocation配置spring的方式SSI框架配置文件路径问题:
6 k; m8 ^! G1 l/ w. o" D: ?struts2的1个+N个路径:src+src(可配置)名称:struts.xml+N spring的1个路径:1 n6 ]" b% \: ?/ W5 m
src名称:applicationContext.xml ibatis的1个+N个路径:% U8 S/ x' @5 m1 t1 W2 Y
src+src(可配置)名称:SqlMapConfig.xml+N
5 f+ \( F3 y7 o. R0 t部署到应用服务器(tomcat)后,src目录下的配置文件会和class文件一样,自动copy到应用的classes目录下
4 u6 D# R- N @: ?; Nspring的配置文件在启动时,加载的是web-info目录下的applicationContext.xml,+ C5 t- k. V d* j
运行时使用的是web-info/classes目录下的applicationContext.xml。
9 R& l- l( s2 Q2 _配置web.xml使这2个路径一致:- ]* u( |/ U [4 }
<context-param>4 W' P( q% R9 C$ o1 k
<param-name>contextConfigLocation</param-name>
6 X# c3 C( u. ~# U# ~* N6 H/ z- L3 Y! w6 h<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
8 h6 X$ @0 W+ y* p0 z1 O; B</context-param>
" @- T1 i) e; N) H( R多个配置文件的加载" ~( z, \3 O5 z+ \; A
<context-param>
) @, a* q/ o3 L2 v% X1 K% L, B8 [<param-name>contextConfigLocation</param-name>' C5 K% k; X2 u3 J. ^# M% }
<param-value>
% u) N' r% ~- B* J" g+ w; lclasspath*:conf/spring/applicationContext_core*.xml,) F0 R& O7 ^, m
classpath*:conf/spring/applicationContext_dict*.xml,
. A1 P# o) g4 [& [0 I, Y- `classpath*:conf/spring/applicationContext_hibernate.xml* S, L2 Q6 ^- f9 Y* U
</param-value> </context-param>$ v& G# M: y% y
contextConfigLocation参数定义了要装入的Spring配置文件。
9 ^+ I, s' a" m6 k# y4 s首先与Spring相关的配置文件必须要以"applicationContext-"开头,
' U2 S! |( b; m要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。+ V& ]" o+ @: n% _2 H& Q; n+ [
还有最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录。+ \$ Z" m1 O7 E6 C3 z' H
这样程序看起来不会很乱。* m. t6 U5 b: y# M
在web.xml中的配置如下:' |' S8 @# V0 U* J3 M0 Z( p1 \( `
Xml代码
; }4 U0 h8 u9 t* C6 _4 H3 B5 e<context-param>
. c$ A& c1 r$ p<param-name>contextConfigLocation</param-name>& b0 E+ C9 L0 A- p# y b& Y: x9 R
<param-value>classpath*:**/applicationContext-*.xml</param-value>
& X( B$ y, T' H# d7 q& l( G. ^) w. @</context-param>
i. h# e" S8 ^"**/"表示的是任意目录;
5 @4 N) `) o- Y" u"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。
$ o3 X s% o4 k2 c G你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如:* u8 `& U. r5 Z; h3 w2 {
<!--Spring的配置-->
) ~9 O! F O* H' u<context-param>
' ?$ T& u0 z, ~% n<param-name>contextConfigLocation</param-name>
- T0 _+ E( S! Z' o' E" [<param-value>classpath:/spring/applicationContext-*.xml</param-value>( S# e1 t# D+ P' u; n
</context-param>) C+ @* X) x9 ?9 \( B
- i2 [3 S! L3 q0 ^' @ |
|