mybatis mapper.xml 配置文件问题(有的错误xml是不报的) 导致服务无法启动 。

转载自 开源编程 一舟
mybatsi xml编译报错,tomcat启动一直循环,导致内存溢出,启动失败 mapper.xml怎么知道有没有编译错误,哪个位置有错误 这应该是mybatis的一个bug,编译错误,没有报异常抛出来
package com.jrss.webservice.rest.app.index;

import java.io.IOException;

import org.apache.ibatis.executor.ErrorContext;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.core.NestedIOException;

public class BeanFactory extends SqlSessionFactoryBean{
    
    protected SqlSessionFactory buildSqlSessionFactory() throws IOException{
        try{
            return super.buildSqlSessionFactory();
        }catch (NestedIOException e) {
            e.printStackTrace();
            throw new NestedIOException("Failed parse Mapping resource",e.getCause());
        }finally{
            ErrorContext.instance().reset();
        }
    }
    
    
}

<!-- MyBatis配置 -->
    <bean id="sqlSessionFactory" class="com.jrss.webservice.rest.app.index.BeanFactory">
        <property name="dataSource" ref="dataSource" />
        <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->

这应该是mybatis的一个bug,编译错误,没有报异常抛出来。


新建BeanFactory继承SqlSessionFactoryBean


然后重写buildSqlSessionFactory方法,抛出mybatis mapper.xml编译的错误.


原文地址:https://www.cnblogs.com/zhangchenglzhao/p/5344992.html