TA的每日心情![](source/plugin/dsu_paulsign/img/emot/shuai.gif) | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
web.xml中classpath:和classpath*:有什么区别?
: F/ ~& n" {8 g4 l# N8 K7 g9 jclasspath:只会到你的class路径中查找找文件;' w7 e; k. a* ?& t
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.% V- \ k+ A( F- C6 D: k
存放位置:
& t9 \( V, j6 g" {, ]& ]/ {1:src下面 需要在web.xml中定义如下:
, T: |7 X1 m$ B4 s( a<context-param>
# X' x. }) [5 X; U6 ]8 U7 R<param-name>contextConfigLocation</param-name>
6 X# I1 E; l# z' q<param-value>classpath:applicationContext.xml</param-value>* L) M$ D5 \% ]) j
</context-param>; X$ M: @8 ]( a' W& ?
2:WEB-INF下面 需要在web.xml中定义如下:
( W, ~/ |2 G$ K, h* E- g) W' L7 _<context-param>9 b( v" A' R8 g% H" W4 C
<param-name>contextConfigLocation</param-name>
6 U) L% q* R! i* g<param-value>WEB-INF/applicationContext*.xml</param-value>+ |% v# i! C& U4 L
</context-param>/ _1 O. }7 t5 ?; g' l
web.xml通过contextConfigLocation配置spring的方式SSI框架配置文件路径问题:2 @4 w1 I9 g; N
struts2的1个+N个路径:src+src(可配置)名称:struts.xml+N spring的1个路径:
6 {9 _# f# i( Y8 E3 ^6 Usrc名称:applicationContext.xml ibatis的1个+N个路径:
1 s/ g) U- ~4 p; Ysrc+src(可配置)名称:SqlMapConfig.xml+N
& z6 L7 {7 w# m D$ D部署到应用服务器(tomcat)后,src目录下的配置文件会和class文件一样,自动copy到应用的classes目录下
: ^! c' ^ H9 `' l; Yspring的配置文件在启动时,加载的是web-info目录下的applicationContext.xml,7 M# s/ g) a7 s* U& N6 g2 ?" V
运行时使用的是web-info/classes目录下的applicationContext.xml。0 e( z8 X0 ^# [& Q! N- t
配置web.xml使这2个路径一致:- u- L/ t8 j, K9 [- x5 r% Z! A
<context-param>( f2 K9 w# r- E3 ~) b7 A }
<param-name>contextConfigLocation</param-name>0 k/ l. X1 @! v8 e
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
. e3 L e. X5 ?+ }* f1 i' s: M0 y</context-param>
7 G! B% S7 Q8 x3 T6 I0 q5 T( H5 V多个配置文件的加载, M& G+ c+ ^. V4 Y0 x* C
<context-param>" F( r: i" [# @4 F
<param-name>contextConfigLocation</param-name>% K, {/ q& Y3 a5 }& L3 O. c
<param-value>
6 y4 I/ `! m/ v# V+ yclasspath*:conf/spring/applicationContext_core*.xml,
" b" q/ w8 _* g! G! Rclasspath*:conf/spring/applicationContext_dict*.xml,
, e/ n* T0 H: S* {9 T* nclasspath*:conf/spring/applicationContext_hibernate.xml
( N' g1 x3 x0 Y. a' y& V2 ] H</param-value> </context-param>
- Y% E& ?% M' ?( }7 ?: LcontextConfigLocation参数定义了要装入的Spring配置文件。; {* k. Y5 l0 u! Y) o0 d8 G
首先与Spring相关的配置文件必须要以"applicationContext-"开头,
3 A, H) p( c# Z4 d) D要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。
" r G" S0 u5 j0 \还有最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录。; f/ A7 L4 k* `! g1 w
这样程序看起来不会很乱。
7 S# x# u+ m" H3 V在web.xml中的配置如下:6 e( d8 n3 d) O$ R) Q/ ]9 r$ ~
Xml代码
5 A* m6 ], T- u2 @ q<context-param>2 C* ~7 a4 J7 R4 A: E+ e, |$ H
<param-name>contextConfigLocation</param-name>
! F7 H' I2 U4 k9 q# r- T, `+ {<param-value>classpath*:**/applicationContext-*.xml</param-value>6 b4 K2 R$ O. Z$ L* U. E
</context-param>2 s: d- ]$ Z5 \
"**/"表示的是任意目录;
+ P- {9 j; j) h) q+ D0 J0 M( u"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。
. v" R& P3 v. u+ R' @: P你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如:4 q2 ^' U; f0 @, \- I0 L
<!--Spring的配置-->
- R' a6 v: A5 J" A2 F<context-param>1 t' M5 U# W- A9 s; {
<param-name>contextConfigLocation</param-name>' e( e7 `5 B5 v! m% r
<param-value>classpath:/spring/applicationContext-*.xml</param-value>% G1 y, r( T. j: k% p+ M1 H
</context-param>2 Q( w9 N' Y I2 L4 E2 f
3 B+ q% {* S( j2 N/ c) h1 `* f# w4 z
|
|