TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
web.xml中classpath:和classpath*:有什么区别?% v% ?# D3 ^2 H; G2 G! c; B0 }
classpath:只会到你的class路径中查找找文件;8 T8 y' C4 G$ S$ b: x1 ^
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.# H9 x( ?" k W: b' ]6 \( [
存放位置: B: J& t* f* R4 u p
1:src下面 需要在web.xml中定义如下:- A# v0 [3 x+ y6 W$ ]# \7 F! ]
<context-param>( m4 S& U# f r+ D" S
<param-name>contextConfigLocation</param-name>
7 c5 W5 T7 x6 w3 e2 A' q<param-value>classpath:applicationContext.xml</param-value>
0 X- ]! r" B2 g* Y</context-param>7 g* R/ E1 v; K4 R
2:WEB-INF下面 需要在web.xml中定义如下:
( K$ ?1 i) c' c8 J<context-param>
( S1 a0 n: [6 D<param-name>contextConfigLocation</param-name>: {7 y9 J9 t! l3 `, t# ~( Y' u
<param-value>WEB-INF/applicationContext*.xml</param-value>
) ^# } j9 S; v* [9 N6 E+ f</context-param>, H* h% \, L) Q) D) h
web.xml通过contextConfigLocation配置spring的方式SSI框架配置文件路径问题:
- ~6 U7 t* e4 R! U6 Estruts2的1个+N个路径:src+src(可配置)名称:struts.xml+N spring的1个路径:
$ \# c! z7 F4 k) i& p, `( C/ ~3 c# ssrc名称:applicationContext.xml ibatis的1个+N个路径:; e! N$ \) Z+ A0 {. o) [) P
src+src(可配置)名称:SqlMapConfig.xml+N
2 E* M6 p- d, C ~# k部署到应用服务器(tomcat)后,src目录下的配置文件会和class文件一样,自动copy到应用的classes目录下8 h p" c: b3 L! q5 w+ t
spring的配置文件在启动时,加载的是web-info目录下的applicationContext.xml,( d+ P$ H: F* F% s& a2 i3 N
运行时使用的是web-info/classes目录下的applicationContext.xml。0 K2 f7 U, ?6 |
配置web.xml使这2个路径一致: I$ c. t, E- @$ g) E' B* O& Q
<context-param>) b1 `* h7 ^/ Y
<param-name>contextConfigLocation</param-name>" q0 c1 N h- Y& j) G( T; e ~
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
4 u8 E! r! l! c1 y* u0 h0 g3 I0 V</context-param>
# V5 n" Z6 T' j多个配置文件的加载6 u3 U# J% s2 x; W, ?
<context-param>& Z( P- w E, N7 K
<param-name>contextConfigLocation</param-name>8 X5 R% s) ]5 i3 k8 N8 A( N5 A
<param-value>
6 G% K1 W9 f! Jclasspath*:conf/spring/applicationContext_core*.xml,- }' `! \" L' \! Y9 S
classpath*:conf/spring/applicationContext_dict*.xml,
- d/ ^; n2 n* J! r1 Z2 Eclasspath*:conf/spring/applicationContext_hibernate.xml
: L" y; |$ C! r9 C, c$ Y/ w</param-value> </context-param>
( M- O! C C, F* O1 n' HcontextConfigLocation参数定义了要装入的Spring配置文件。
# d. S8 V' W& k. G& ]9 S- ]2 g首先与Spring相关的配置文件必须要以"applicationContext-"开头,+ `7 E6 X* R$ M# B2 k8 i8 ?
要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。' i2 D; K: L! A, M( b
还有最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录。
- k3 q& J9 C( H: d* N' c; M V1 B; O6 ~这样程序看起来不会很乱。, d# f' W6 j5 ?: P/ r
在web.xml中的配置如下:( `1 f$ M( A: C1 ^
Xml代码
$ o- R, b6 k" o5 B% L) f<context-param>+ O0 c# O& W7 Q, {6 W0 P
<param-name>contextConfigLocation</param-name> c; [% r4 A f8 T, Q
<param-value>classpath*:**/applicationContext-*.xml</param-value>
2 f; s* ^+ ? i& |</context-param> g% G! e; b. N: W
"**/"表示的是任意目录;
" l5 k# a9 r* m5 O"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。# _2 Q0 f+ f3 l* x S% T" l
你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如:
8 X- u8 }9 ` s @0 y<!--Spring的配置-->
- z" \ |1 \4 J _<context-param>8 m/ Q$ ^( B2 \' Q" X* C, Z2 F Q) @
<param-name>contextConfigLocation</param-name>0 g$ f. l! m$ R! _
<param-value>classpath:/spring/applicationContext-*.xml</param-value>: A8 ~7 V! F1 n
</context-param>4 s) ?7 g5 U. E
" K2 F5 n `- W$ @( e' h
|
|