maven项目启动报错;class path resource [mapper/]

时间:2020-06-27 12:01:08 类型:JAVA
字号:    

  项目启动报了一堆错误,其实都是class path resource [mapper/] cannot be resolved to URL because it does not exist这一个错误引起的

  原来的session工厂的配置是这样写的

<!-- 配置mybitas工厂,同时指定数据源,并与MyBatis完美整合 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <!-- 自动扫描mapping.xml文件 -->
    <property name="mapperLocations" value="classpath:mapper/*.xml" />
    <!-- configLocation的属性值为Mybatis的核心配置文件 -->
    <property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>

  在classpath后加上*号,所有的问题都解决了,更改后的代码

<!-- 配置mybitas工厂,同时指定数据源,并与MyBatis完美整合 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <!-- 自动扫描mapping.xml文件 -->
    <property name="mapperLocations" value="classpath*:mapper/*.xml" />
    <!-- configLocation的属性值为Mybatis的核心配置文件 -->
    <property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>

  classpath和classpath*区别:


       classpath:只会到你的class路径中查找文件。

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

  注意: 用classpath*:需要遍历所有的classpath,所以加载速度是很慢的;因此,在规划的时候,应该尽可能规划好资源文件所在的路径,尽量避免使用classpath*

    

  经分析,这样会把依赖工程中的classpath下的都加载进来。

       最后还是使用classpath,IDEA在编译的时候,没把空文件夹mapper复制到target目录下,导致编译过程中找不到这个目录。所以在mapper目录下新建一个txt文件,避免空文件夹。重新运行就可以通过了


<