TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
web.xml中classpath:和classpath*:有什么区别?
7 s4 D. d- L8 z& ?# o/ |classpath:只会到你的class路径中查找找文件;$ p% C, ~& q- p7 ^8 U
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.! A- p9 ]8 ^& D S- h3 Y
存放位置:
4 N/ V) Q: `8 B" c- S6 d% ~+ b) ?1:src下面 需要在web.xml中定义如下:
; A4 K6 e# p4 A$ b/ h' C$ w<context-param>& D8 g# ?4 ^" _# {. _+ ?' i& k" _
<param-name>contextConfigLocation</param-name>
' E. e" g4 K+ O<param-value>classpath:applicationContext.xml</param-value>
! n% g* }) Q- D; o</context-param>/ @: o5 D: d" P. |
2:WEB-INF下面 需要在web.xml中定义如下:1 v: v L1 Q9 h( C. J3 B! C
<context-param>* J: U1 J6 i8 E5 C3 Y: k' l/ p
<param-name>contextConfigLocation</param-name>
3 ^- k% b/ O' \! d4 Q8 n0 n, b<param-value>WEB-INF/applicationContext*.xml</param-value>
. @# {2 ~5 M2 F, t6 `: e+ g$ j3 D$ h</context-param>
) H" T1 j7 i/ S) d" eweb.xml通过contextConfigLocation配置spring的方式SSI框架配置文件路径问题:3 `# j3 h3 W/ k
struts2的1个+N个路径:src+src(可配置)名称:struts.xml+N spring的1个路径:' a a2 I) ^$ w* z+ c3 S
src名称:applicationContext.xml ibatis的1个+N个路径:
; {' T/ h- ~4 i: C2 V/ m2 osrc+src(可配置)名称:SqlMapConfig.xml+N* M) O/ G3 A1 ?" K/ d. y
部署到应用服务器(tomcat)后,src目录下的配置文件会和class文件一样,自动copy到应用的classes目录下/ G+ E; m8 C9 B. G5 S
spring的配置文件在启动时,加载的是web-info目录下的applicationContext.xml,
% {' J" E% c' k运行时使用的是web-info/classes目录下的applicationContext.xml。
: w4 {/ A5 x- O$ ~配置web.xml使这2个路径一致:
F) Z, S( S9 f4 s0 _) f) ]<context-param>
0 F+ i! b+ |' p3 l; x" @<param-name>contextConfigLocation</param-name>3 x" g# K$ t/ f- t7 U6 m
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>/ q) A% K2 k+ q( l i6 w# V
</context-param>" N) G! {* }. }5 A( Q3 Y! p
多个配置文件的加载
8 j0 ?. C3 r% r5 H" q<context-param># o' [% ~% g1 Z
<param-name>contextConfigLocation</param-name>
, W0 n0 @ c! K: A. ]- k1 |<param-value>
0 m1 p( i6 q( wclasspath*:conf/spring/applicationContext_core*.xml,
' ^# ]+ Q' a7 x/ B: z8 s1 b) mclasspath*:conf/spring/applicationContext_dict*.xml,
1 e6 L5 \( b0 ?classpath*:conf/spring/applicationContext_hibernate.xml" U6 @- A# d& M& _3 x6 d- y; Q
</param-value> </context-param>, H9 m' v0 n3 m
contextConfigLocation参数定义了要装入的Spring配置文件。* z( R8 Q% _9 q- B) l
首先与Spring相关的配置文件必须要以"applicationContext-"开头,
8 K* D! t. Q$ w5 K& Y要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。 [) X. a3 W/ J" q5 g5 Y! K
还有最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录。
2 {: i( p3 {# O% w% p4 V! Q) t) Q这样程序看起来不会很乱。7 o9 Y4 \4 D8 ]* V3 Y% J) B
在web.xml中的配置如下:; r5 T% |1 z5 M+ x6 n
Xml代码- j# p) ~1 h7 ?& e2 |( }
<context-param>$ d1 P. i! a6 N u+ J
<param-name>contextConfigLocation</param-name>
7 d: t0 g8 u/ C3 _9 C<param-value>classpath*:**/applicationContext-*.xml</param-value>! }# K* a7 }+ z, Y/ W
</context-param>1 T* l) R0 @) @ t2 ?( n
"**/"表示的是任意目录;3 s: T) u X+ w
"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。
; i0 m9 `% X( {4 X你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如:8 e8 J5 x8 z! j+ s
<!--Spring的配置-->
5 {! {1 }% y* ]# U<context-param>! g. I) e( z, @: x7 w* a: @/ Y W
<param-name>contextConfigLocation</param-name>
5 v4 V. \& D# C5 l) N<param-value>classpath:/spring/applicationContext-*.xml</param-value>% a1 l0 ]$ I! E8 H/ a" |- d
</context-param>1 s! K% Y, T9 h6 S
1 E1 C' n( G: E% O0 P
|
|