TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
web.xml中classpath:和classpath*:有什么区别?
; { V/ b4 _; _ A/ G5 }4 [4 v: mclasspath:只会到你的class路径中查找找文件;- E' S3 C1 O* s/ Q
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.
+ i8 G6 t! h; c. e2 I/ f$ N存放位置:
/ A5 y- h, J$ T, M1:src下面 需要在web.xml中定义如下:
* R3 R* P2 U( F2 a+ R# X( c<context-param>
S0 M$ ^: s# ]<param-name>contextConfigLocation</param-name>. P4 U" `3 s5 d3 B" k4 V& q
<param-value>classpath:applicationContext.xml</param-value># Z: p5 R2 M6 C- M2 j" Y6 F
</context-param>
# Q% W8 B v5 r' }" T2:WEB-INF下面 需要在web.xml中定义如下:. u" C5 S$ \8 N0 F* U; Z( u6 M" N
<context-param>1 P \9 i4 U `; j
<param-name>contextConfigLocation</param-name>
+ o+ @# W' M1 s+ o% H8 U: L<param-value>WEB-INF/applicationContext*.xml</param-value>* d5 s# S7 K# |
</context-param>' Y' E5 f- D9 A7 A% x* Z
web.xml通过contextConfigLocation配置spring的方式SSI框架配置文件路径问题:
; H! `9 Q" s/ u# [struts2的1个+N个路径:src+src(可配置)名称:struts.xml+N spring的1个路径:: q% ]/ X6 n! z- {# J
src名称:applicationContext.xml ibatis的1个+N个路径:/ B0 Z) v' s8 R# S3 x+ C4 a
src+src(可配置)名称:SqlMapConfig.xml+N
+ G( f2 {7 f# s" @2 O! B部署到应用服务器(tomcat)后,src目录下的配置文件会和class文件一样,自动copy到应用的classes目录下' n E, }2 G2 Z, l% E
spring的配置文件在启动时,加载的是web-info目录下的applicationContext.xml,
8 z" b$ n3 T& _$ m& U$ C* A8 m运行时使用的是web-info/classes目录下的applicationContext.xml。 V6 }" n' Z# J' ?* ?# ~8 o; H
配置web.xml使这2个路径一致:
! _) f& Y3 p0 |- c' {8 E<context-param>
2 W. |$ Q5 j! g1 j4 C3 t. G7 d6 A<param-name>contextConfigLocation</param-name>
0 o; |2 \3 m, I0 d* x<param-value>/WEB-INF/classes/applicationContext.xml</param-value>7 Y* q3 D' Y, b3 q- D- I4 Y$ j) v
</context-param>* h6 y5 \# j" _/ w/ @6 c/ {3 P, P
多个配置文件的加载
- T4 t* j! u' h<context-param>
' |; f9 b0 V. \, D+ [6 f<param-name>contextConfigLocation</param-name>
- s4 \ g% w4 s& Z9 a<param-value>
. f: ^* ?; _& B" k) _7 Hclasspath*:conf/spring/applicationContext_core*.xml,/ y% C( M0 [0 S' U; Q3 L2 G- P
classpath*:conf/spring/applicationContext_dict*.xml,8 \' Y( |/ r* Y G9 Z8 j
classpath*:conf/spring/applicationContext_hibernate.xml. y% V0 m# Y$ n$ O
</param-value> </context-param>1 ^ d7 I4 o( d! W% h& t
contextConfigLocation参数定义了要装入的Spring配置文件。/ w9 {. j. w2 t( J
首先与Spring相关的配置文件必须要以"applicationContext-"开头,
4 W/ x& I [ C' ~! A要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。
7 b/ [$ ]3 | b5 {: M. B还有最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录。
8 T6 |/ Z9 D |5 c9 @ b这样程序看起来不会很乱。
4 M2 `- m' W/ ^3 D& c; e# R f在web.xml中的配置如下:( x0 H0 T% w/ K, s: H2 f
Xml代码" d- w1 k) @0 D' J
<context-param>
$ A W, m1 R5 I- R5 T: `& q: a<param-name>contextConfigLocation</param-name>. l# ^$ ~" l, F2 X2 }. _% J7 A4 B
<param-value>classpath*:**/applicationContext-*.xml</param-value>
+ z ^8 ?* \0 {! g8 ?$ `. X</context-param>
# R" x( C; \: h6 Q! E"**/"表示的是任意目录;# ]; f3 o0 y1 z, {
"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。
3 {) _, V+ {( c- @9 A$ M你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如:1 Z' T/ f. T/ g
<!--Spring的配置-->
2 t+ U- C O# `4 u1 Q<context-param>
$ w2 _5 X$ z3 X& Q" N, ^7 \) V- ?<param-name>contextConfigLocation</param-name>
, i$ T+ m9 P# e3 ]<param-value>classpath:/spring/applicationContext-*.xml</param-value>
1 _4 U& i) }/ [" M</context-param>8 W( N, @3 V6 W2 U
% [$ s9 {7 b& H+ Z5 a3 K/ b
|
|