TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
web.xml中classpath:和classpath*:有什么区别?
0 u! o. B1 Y1 q) R: dclasspath:只会到你的class路径中查找找文件;
1 [: s1 t) Y% y8 [$ Aclasspath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.
N+ l) b0 H+ c2 z0 I$ W存放位置:4 e+ P' |2 y0 G4 i& O2 l
1:src下面 需要在web.xml中定义如下:, x$ ` Y# h& T2 @/ x
<context-param>
; p( s5 S% h7 H+ k/ ?<param-name>contextConfigLocation</param-name>
5 l) R$ Q. S# e8 V9 \<param-value>classpath:applicationContext.xml</param-value>2 z$ z% Q+ N" ~$ i. Z- ?9 u e- u
</context-param>
, z0 V3 o' d9 S2:WEB-INF下面 需要在web.xml中定义如下:1 t' k& [/ _8 Z8 m" w' ]2 ]6 F
<context-param>
* c; K+ ]# T. E7 q* @# W7 S) m<param-name>contextConfigLocation</param-name>
/ Y9 s7 t: w `' I9 `$ a<param-value>WEB-INF/applicationContext*.xml</param-value>/ E( A7 f: s) l% i/ \! Z
</context-param>. _6 i, h+ r7 v8 E) ? Y2 t
web.xml通过contextConfigLocation配置spring的方式SSI框架配置文件路径问题:
1 D# }; W% h7 S# k! h) S: \struts2的1个+N个路径:src+src(可配置)名称:struts.xml+N spring的1个路径:
! r9 t z* p4 d% M! osrc名称:applicationContext.xml ibatis的1个+N个路径:
0 J; H* C6 l4 A" bsrc+src(可配置)名称:SqlMapConfig.xml+N
1 G) }+ @1 b6 w' s0 M5 n, i部署到应用服务器(tomcat)后,src目录下的配置文件会和class文件一样,自动copy到应用的classes目录下8 Q( ^1 c: k7 t7 l2 W* D, r' P
spring的配置文件在启动时,加载的是web-info目录下的applicationContext.xml,2 g. { ^7 H/ v! r
运行时使用的是web-info/classes目录下的applicationContext.xml。
' b0 G! u1 o2 e配置web.xml使这2个路径一致:
S$ w( V0 V& Y! t+ E n) |4 c<context-param>" f9 }) U$ v9 { s) W; Q: i
<param-name>contextConfigLocation</param-name>
" y: }; N a$ v2 B W<param-value>/WEB-INF/classes/applicationContext.xml</param-value>; G7 M5 X* z* Z$ \- x
</context-param>, Q+ L# u) @( N7 r
多个配置文件的加载4 x& X4 v9 P i
<context-param>
4 J+ l/ q6 r9 L! M- [3 ~<param-name>contextConfigLocation</param-name>. q D+ k/ q; s9 V5 G& h% @
<param-value>6 s8 p# m# B8 p
classpath*:conf/spring/applicationContext_core*.xml,
3 R0 D S1 A n; h* K4 u6 D0 Nclasspath*:conf/spring/applicationContext_dict*.xml,
9 l7 w8 ^& s4 R+ K4 |7 Kclasspath*:conf/spring/applicationContext_hibernate.xml, d8 h% i" i7 \$ W( j: ~! R! S
</param-value> </context-param>
X) w, `. w- D- Z4 @5 U) EcontextConfigLocation参数定义了要装入的Spring配置文件。! c( a, o' t+ E% e9 [- K
首先与Spring相关的配置文件必须要以"applicationContext-"开头,
! Q5 o. b9 d! o+ \8 d$ {# t2 o要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。
) [3 _8 v4 o( a- A8 S还有最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录。
7 m; o- a* S) r5 t, T- |这样程序看起来不会很乱。
0 E" O n; _! {/ L+ Q) N; n, e' r' x在web.xml中的配置如下:
5 h2 z. H/ l8 S& F3 aXml代码
~) p" c9 o* @0 r$ E/ y<context-param>! M/ Z) L" L: V, U6 V: f( Z8 X
<param-name>contextConfigLocation</param-name>
Q# @6 A9 \. b: q- t<param-value>classpath*:**/applicationContext-*.xml</param-value> R6 o. D* W3 X/ T* [* w: z
</context-param>
2 W# {$ S- l- f( V$ y" S1 t, _( s6 n"**/"表示的是任意目录;, q" y- N* R. L3 h2 L9 L5 ^6 P
"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。
7 s+ |; y) u5 |9 K. A你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如:8 ^ F( x8 W; T* s9 r/ r: k6 k
<!--Spring的配置-->
' ]: u/ T- v0 u4 ?7 W! t<context-param>! [3 o8 E6 j) U6 z7 i
<param-name>contextConfigLocation</param-name>! ~; }0 w6 A" e5 K& R- K C. R
<param-value>classpath:/spring/applicationContext-*.xml</param-value>
; t# ?" v! K* R; J1 K</context-param>
* w! I3 S2 ~, s8 T* I9 b7 p
# L/ m, \$ d! O |
|