[spring]xml配置文件中的"classpath:"与"classpath*:"的区别

<bean id="sessionFactorySaas" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSourceSaasdb"/>
        <!-- mapper和resultmap配置路径 -->
        <property name="mapperLocations" value="classpath*:mapper/**/saas.*.xml" />
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>

classpath:

  • 只会到你的class路径中查找找文件;
  • 有多个classpath路径,并同时加载多个classpath路径的情况下,只会从第一个classpath中加载。

classpath*:

  • 不仅包含class路径,还包括jar文件中(class路径)进行查找;
  • 有多个classpath路径,并同时加载多个classpath路径的情况下,会从所有的classpath中加载;
  • 用classpath*:需要遍历所有的classpath,所以加载速度是很慢的;因此,在规划的时候,应该尽可能规划好资源文件所在的路径,尽量避免使用classpath*。
原文地址:https://www.cnblogs.com/vickylinj/p/9475990.html