Parsed configuration file class path resource Configuration.xml

本文通过解决一个实际项目中MyBatis配置错误导致的启动问题,深入探讨了resultMap与resultType的使用场景及区别。指出当返回对象需要二次封装时,必须使用resultMap,而非resultType。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开发项目遇到一个小的问题,困扰了我好大一会时间,现象是项目启动的过程中控制台一直输出mybatis的配置文件,但是一直没有结束,不停的输出,导致项目无法正常启动成功!

[org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed configuration file: 'class path resource [mybatisConfiguration.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/admis/AdmisEquelMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/admis/EquBefChangeMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/admis/EqumsIntFormDeMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/admis/EqumsReFormMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/assetClassiFication/AssetClassMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/assetMaintenanceRepair/AssetMaintenanceRepairMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/assetsinventory/AsDetailedFormMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/assetsinventory/AssetsInventoryMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/attach/AfBindTbMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/attach/CommonBasePhotosMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/attributeChanges/AssetAttributeChangeMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/attributeChanges/AsTrafficVolumesMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/billMaterial/BillMaterialMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/change/ChangesMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/common/AsRelMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/common/CommonBaseNameMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/contractProject/ContractProjectMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/earlierstage/EarlierStageMapper.xml]'
  2020-05-21 11:01:23 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/edm2eam/InterfaceMdmBaseDataMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed configuration file: 'class path resource [mybatisConfiguration.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/admis/AdmisEquelMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/admis/EquBefChangeMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/admis/EqumsIntFormDeMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/admis/EqumsReFormMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/assetClassiFication/AssetClassMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/assetMaintenanceRepair/AssetMaintenanceRepairMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/assetsinventory/AsDetailedFormMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/assetsinventory/AssetsInventoryMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/attach/AfBindTbMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/attach/CommonBasePhotosMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/attributeChanges/AssetAttributeChangeMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/attributeChanges/AsTrafficVolumesMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/billMaterial/BillMaterialMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/change/ChangesMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/common/AsRelMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/common/CommonBaseNameMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/contractProject/ContractProjectMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/earlierstage/EarlierStageMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed mapper file: 'URL [jar:file:/F:/apache-tomcat-8.0.33/webapps/eam%23api/WEB-INF/lib/eam-query-1.0-SNAPSHOT.jar!/com/ncic/eam/query/mapper/edm2eam/InterfaceMdmBaseDataMapper.xml]'
  2020-05-21 11:01:24 [org.mybatis.spring.SqlSessionFactoryBean]-[DEBUG] Parsed configuration file: 'class path resource [mybatisConfiguration.xml]'
................................
................................
................................

搞的我头大,问题在自己刚增加的代码有关系,因为昨天还正常启动,今天改了点东西就这样了,经过仔细检查发现问题。

<resultMap id="queryEquBaseInfoResultMap" type="map">
        <id property="id" column="ID"/>
        <result property="assetNumber" column="ASSET_NUMBER"/>
        <result property="depreciationPeriod" column="DEPRECIATION_PERIOD"/>
        <result property="methodDepreciationId" column="METHOD_DEPRECIATION_ID"/>
        <association property="methodDepreciationName" javaType="map">
        <result property="text" column="METHOD_DEPRECIATION_ID"/>
        <result property="value" column="METHOD_DEPRECIATION_NAME"/>
        </association>
</resultMap>
<select id="queryEquBaseInfoById" parameterType="java.lang.String" resultType="queryEquBaseInfoResultMap">
..........
........
</select>

大家仔细看我上面的mybatis配置有什么问题?对了,问题就出现在resultType,因为queryEquBaseInfoResultMap是我自定义的一个集合对象,必须要使用resultMap才可以!
下面的才是正确的代码:

<select id="queryEquBaseInfoById" parameterType="java.lang.String" resultMap="queryEquBaseInfoResultMap">

总结:resultType 和 parameterType都可以直接定义成map,表示输出和输入的对象全部集合对象,这个没有问题,但一旦我们对返回的集合对象进行二次封装的时候,就必须改成resultMap,可能是因为mybatis在解析的时候,发现如果是resultType的话,自然认为是一种常见的类型或者是自己定义的java实体,不会去找配置文件里的对象吧!
以前面试的时候也有面试官问过这类问题,resultType和resultMap有什么区别,以前用mybatis也没在意这种情况,这种写法也不多见,记录下来这样的小问题,下次遇到面试的话,直接可以甩给面试官!

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: class path resource [Mapper/*.xml] cannot be opened because it does not exist at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.2.3.jar:6.2.3] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645) ~[spring-beans-6.2.3.jar:6.2.3] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1361) ~[spring-beans-6.2.3.jar:6.2.3] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1191) ~[spring-beans-6.2.3.jar:6.2.3] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) ~[spring-beans-6.2.3.jar:6.2.3] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.2.3.jar:6.2.3] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.3.jar:6.2.3] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:346) ~[spring-beans-6.2.3.jar:6.2.3] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.3.jar:6.2.3] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-6.2.3.jar:
03-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值