web.xml 配置中classpath: 与classpath*:的区别

首先 classpath是指 WEB-INF文件夹下的classes目录

classpath 和 classpath* 区别

classpath:只会到你指定的class路径中查找文件;

classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.


举个简单的例子,在我的web.xml中是这么定义的:classpath*:META-INF/spring/application-context.xml

那么在META-INF/spring


这个文件夹底下的所有application-context.xml都会被加载到上下文中,这些包括 META-INF/spring文件夹底下的 application-context.xml,META-INF/spring的子文件夹的application-context.xml以及 jar中的application-context.xml。

 

如果我在web.xml中定义的是:classpath:META-INF/spring/application-context.xml

那么只有META-INF/spring底下的application-context.xml会被加载到上下文中。

另外
java编译后源文件夹的非java文件会被copy到classes目录。 你可以右键 选择 build path ,然后可以把一些目录加入成为源文件夹,或者移出源文件夹。
无论有几个源文件夹,最后都会被加到classes目录里。


配置 MyBatis 的相关属性时,classpath 可以有以下几种书写方式: 1. classpath: 相对于 classpath 的根路径,例如:classpath:mybatis/mapper/*.xml 表示在 classpath 的 mybatis/mapper 目录下查找所有以 .xml 结尾的文件。 2. classpath*: 包括 classpath 的所有路径,例如:classpath*:mybatis/mapper/*.xml 表示在 classpath 的所有路径下查找所有以 .xml 结尾的文件。 3. / 相对于当前 ServletContext 的根路径,例如:/WEB-INF/classes/mybatis/mapper/*.xml 表示在 ServletContext 的 WEB-INF/classes 目录下查找所有以 .xml 结尾的文件。 4. 文件系统路径,例如:file:/mybatis/mapper/*.xml 表示在文件系统的 mybatis/mapper 目录下查找所有以 .xml 结尾的文件。 其,使用 classpath: 是最常见的方式,它可以让我们在 classpath 下的任何位置查找文件,因此也是最为推荐的方式。 需要注意的是,如果您的 .xml 文件和 MyBatis 的配置文件不在同一个目录下,那么应该在配置文件指定 .xml 文件的路径,例如: ``` <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> <property name="mapperLocations" value="classpath:mapper/*.xml" /> </bean> ``` 其,mapperLocations 属性指定了 .xml 文件的路径,它的值为 classpath:mapper/*.xml,表示在 classpath 的 mapper 目录下查找所有以 .xml 结尾的文件。 希望以上解释能够帮助您理解 classpath 的书写方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值