TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
web.xml中classpath:和classpath*:有什么区别?
( d' c" s- C: D$ f# d$ j/ P% aclasspath:只会到你的class路径中查找找文件;" R$ R( s3 g) t/ _! {
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.9 ^7 e2 ]; [3 H+ x5 |1 m2 |
存放位置:
2 ` X9 e5 U, C' k) C1:src下面 需要在web.xml中定义如下:: o/ ~9 \( ?6 {3 B
<context-param>- _5 a) o% O/ p
<param-name>contextConfigLocation</param-name>8 u2 L6 c$ J) V" R
<param-value>classpath:applicationContext.xml</param-value>' Q9 r4 H* E( b/ m. A4 {2 w- |
</context-param>
- d( n* `4 u# _/ D: ` p( d$ c: P% D2:WEB-INF下面 需要在web.xml中定义如下:
2 _. Z5 e3 n# R+ ~* z<context-param>
4 M2 h6 w, r0 [8 _# ~* N5 p- U<param-name>contextConfigLocation</param-name>, Q/ e6 s5 g# K) N4 Q0 H6 h
<param-value>WEB-INF/applicationContext*.xml</param-value>0 k: }8 W) S5 W' ?% @2 @+ X& G- F
</context-param>; A8 ?- l6 Z; W9 G, ]" r) c
web.xml通过contextConfigLocation配置spring的方式SSI框架配置文件路径问题:
% e8 f B$ S2 _struts2的1个+N个路径:src+src(可配置)名称:struts.xml+N spring的1个路径:
0 ^5 L3 L o3 V3 bsrc名称:applicationContext.xml ibatis的1个+N个路径:+ ?7 `+ B6 w1 j/ W w$ |
src+src(可配置)名称:SqlMapConfig.xml+N
" \. ~5 E, A6 L5 E部署到应用服务器(tomcat)后,src目录下的配置文件会和class文件一样,自动copy到应用的classes目录下7 v2 H) [! o F: O, j8 a w1 L
spring的配置文件在启动时,加载的是web-info目录下的applicationContext.xml,% ]9 V* u1 ?3 e5 s4 S* J) |
运行时使用的是web-info/classes目录下的applicationContext.xml。& {+ a7 v) M# Z
配置web.xml使这2个路径一致:5 ?: T, |9 J, f: @9 s4 H
<context-param>
- f1 m# I4 u1 H: R5 R& D<param-name>contextConfigLocation</param-name>& n2 e1 C8 z) H& T B
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>" o* D8 T2 g z2 m; o8 z+ m
</context-param>
# W" s1 T' u& G R多个配置文件的加载0 ]3 u7 b. [/ i! I3 u
<context-param>9 P, |4 T* {# J: e
<param-name>contextConfigLocation</param-name>8 I9 v3 x2 V& B" Y
<param-value>4 ?2 O7 G/ v4 L/ ^- [: ^" x' @# n
classpath*:conf/spring/applicationContext_core*.xml,
0 j! i7 ^% o0 u; S( C" S# f* Uclasspath*:conf/spring/applicationContext_dict*.xml,6 x* d0 l0 \! Y! X
classpath*:conf/spring/applicationContext_hibernate.xml7 i2 y4 C- M3 E1 R' D
</param-value> </context-param>6 C& F% i P* r$ X. M
contextConfigLocation参数定义了要装入的Spring配置文件。
- u. R: [: i- ^% T4 Q首先与Spring相关的配置文件必须要以"applicationContext-"开头,
# q5 D1 C9 f: h要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。
2 E% ]/ u' l) x/ Q K还有最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录。
5 A' w0 q: }. r9 m( a: p这样程序看起来不会很乱。$ z( ~; {; y. X/ ?7 L3 B! [4 E& V
在web.xml中的配置如下:
/ k1 x2 K+ H qXml代码0 i$ L- X$ V% w* Z
<context-param>
$ |; @' w* ]9 Y% |/ L<param-name>contextConfigLocation</param-name>
[, R& W# n7 C% w3 G3 I<param-value>classpath*:**/applicationContext-*.xml</param-value>- f6 O; }$ O B; l6 ~7 N* p; @3 o8 S
</context-param>, T9 ?5 p' F: M( \- I
"**/"表示的是任意目录;
* k! {$ y/ h! N' x"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。7 W* j: y5 {. Z" I8 K; I
你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如:9 [1 [) V4 s8 W6 h, f
<!--Spring的配置-->
) l L) M0 \2 C<context-param>5 b( R# K x8 R- p
<param-name>contextConfigLocation</param-name>
8 D0 S/ d9 G% k, d: t<param-value>classpath:/spring/applicationContext-*.xml</param-value>
% T5 |$ T; l. U1 j" n2 Y) S</context-param># V7 j1 f; Y4 a
1 D m R- `, ]/ F/ x, b4 }0 T5 g |
|