TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
web.xml中classpath:和classpath*:有什么区别?
$ |# Q3 b0 {4 z( q4 a L, }classpath:只会到你的class路径中查找找文件;
R5 C+ T5 Q( ^1 cclasspath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.
$ ^; |! m8 @3 {7 C1 H7 n0 B- x存放位置: }$ t# M1 Z9 N9 L% |
1:src下面 需要在web.xml中定义如下:
. e; @8 ^0 |1 o e4 q* l1 _5 q<context-param>
7 F4 H9 b+ L* l* V$ d<param-name>contextConfigLocation</param-name>
4 F$ K" B& L* O1 r1 C2 A$ O0 P9 ~+ F<param-value>classpath:applicationContext.xml</param-value>; K, a/ W. g4 a! Z9 |0 u6 h
</context-param>
- }- v, A& l h7 L- T. d# a2:WEB-INF下面 需要在web.xml中定义如下:9 E- e7 e! r, K3 Q: t
<context-param>3 `3 f5 R! q: Y8 F# q$ n
<param-name>contextConfigLocation</param-name>
% _- r+ V5 s, r! J& q+ |<param-value>WEB-INF/applicationContext*.xml</param-value>' z* i0 |) e. T. q7 ^4 v( \
</context-param>
" R! f0 Q, z) a6 E$ k2 Iweb.xml通过contextConfigLocation配置spring的方式SSI框架配置文件路径问题:- ^6 b/ p, I* U! I `/ g" b. t
struts2的1个+N个路径:src+src(可配置)名称:struts.xml+N spring的1个路径:
) |/ t( X5 A: r" h: n1 r+ osrc名称:applicationContext.xml ibatis的1个+N个路径:
$ r4 }; f1 E+ l( {' `/ n6 |; ` lsrc+src(可配置)名称:SqlMapConfig.xml+N
% f* d) t) B* Z0 n! P3 I" M4 d4 c部署到应用服务器(tomcat)后,src目录下的配置文件会和class文件一样,自动copy到应用的classes目录下( s5 }; a. @" _. F2 X X& S/ v
spring的配置文件在启动时,加载的是web-info目录下的applicationContext.xml," Q5 }4 o$ Z) U# r
运行时使用的是web-info/classes目录下的applicationContext.xml。
/ @7 A# l* y. }" W1 z, D配置web.xml使这2个路径一致:8 B( E" d1 `9 ^& j
<context-param>
( }/ {! N2 {% L<param-name>contextConfigLocation</param-name># K, N" f3 J+ M, L: _! I
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
' i" \' ~0 K- U7 e$ w6 p</context-param>
1 n, j7 h4 o( m! B多个配置文件的加载
3 s; b1 [6 z' |# i3 H$ l0 V# f<context-param>- }8 G" I0 J! D1 Y- g
<param-name>contextConfigLocation</param-name>
, L9 k1 [. E4 _6 f( o# b<param-value>
$ v$ e( |% H5 W3 z) \classpath*:conf/spring/applicationContext_core*.xml,; U4 Z2 P, l2 N$ y) O, {
classpath*:conf/spring/applicationContext_dict*.xml,& ]7 U& D1 w4 {+ e4 j( I! h! V
classpath*:conf/spring/applicationContext_hibernate.xml" S+ {/ C2 N. [
</param-value> </context-param>$ m! m# J4 n) z! e5 E$ W: ]
contextConfigLocation参数定义了要装入的Spring配置文件。
7 X1 Q5 Y5 l G. P5 y首先与Spring相关的配置文件必须要以"applicationContext-"开头,
. Z7 N3 b* [/ k; }* h7 \要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。, J; ?+ W" I% p2 q: d( V0 k/ X; Y6 N
还有最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录。5 _& Z P% X9 H" S- q
这样程序看起来不会很乱。) u" r& d" W9 }6 G5 S* P; i" ]0 n$ D
在web.xml中的配置如下:$ B; y% A: y k% P
Xml代码
' H. V' t1 V g0 b7 S5 r6 t0 p<context-param>
# R' I# T3 f$ h8 r; S' O8 M& R<param-name>contextConfigLocation</param-name>
) ]4 |; X" J8 [- P* \<param-value>classpath*:**/applicationContext-*.xml</param-value>
$ t0 `& n( G! }7 U0 f0 V$ o</context-param>1 [* N9 K0 t* Q
"**/"表示的是任意目录;" t& ` A% U9 i0 _
"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。
' I6 d) m* n5 ?+ N% k你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如:7 W# A2 P4 i5 d0 n6 H+ [5 Q: C2 K! H
<!--Spring的配置-->/ k) y4 e- {5 H% c5 x$ A8 ?
<context-param>
5 E2 `7 J* b7 A<param-name>contextConfigLocation</param-name>/ x4 n o7 a L3 ~4 ~, z- f
<param-value>classpath:/spring/applicationContext-*.xml</param-value>% G1 Y4 n5 g' m5 V2 a6 h: v1 \
</context-param>; @6 \7 o. D" d6 B" a
4 u7 A3 m3 A7 o9 H9 H& U6 x3 t5 z
|
|