mybatis一直加载xml,找到错误的解决方案

网友投稿 312 2022-08-30


mybatis一直加载xml,找到错误的解决方案

目录mybatis一直加载xml,找到错误今天终于找到了一种解决方法mybatis延迟加载(xml)在mybatis的配置文件中

mybatis一直加载xml,找到错误

我们在写springmvc+mybatis项目,启动项目的时候,mapper配置文件一直刷,一直加载。。。。。

对于我们伟大的程序猿来说这并不可怕,可怕的是没有错误打印出来。。。。。完全不知道如何下手啊,

今天终于找到了一种解决方法

找到org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory 类,在下面方法:

protected void autowireByType(

String beanName, AbstractBeanDefinition mbd, BeanWrapper bw, MutablePropertyValues pvs) {

catch (BeansException ex) {

throw new UnsatisfiedDependencyException(mbd.getResourceDescription(), beanName, propertyName, ex);

}

在throw这一行断点即可,这个地方是最早捕获异常的地方,当Mapper.xml文件出错的时候,会有异常信息输出。

还有一个问题,为什么出错后只能看到无限输出的一行日志,而看不到这里具体的异常信息呢?

通过追踪代码,发现在org.springframework.beans.factory.support.AbstractBeanFactory类中的方法:

protected Class> getTypeForFactoryBean(String beanName, RootBeanDefinition mbd) {

if (!mbd.isSingleton()) {

return null;

}

try {

FactoryBean> factoryBean = doGetBean(FACTORY_BEAN_PREFIX + beanName, FactoryBean.class, null, true);

return getTypeForFactoryBean(factoryBean);

}

catch (BeanCreationException ex) {

// Can only happen when getting a FactoryBean.

if (logger.isDebugEnabled()) {

logger.debug("Ignoring bean creation exception on FactoryBean type check: " + ex);

}

onSuppressedException(euukbJehrnx);

return null;

}

}

这里捕获异常后,直接 return null导致异常被吞。

mybatis延迟加载(xml)

对于一对一和多对一(mybatis映射为一对一)。查询的时候一起查询即可。

但是对于一对多,和多对多。也许那个多对应的数据很多,而我们不需要那个多。那么一起查询会浪费性能资源。

所以,mybatis有懒加载。

mysql默认是立即加载。

懒加载在Collection或者association属性中有一个fetchType属性,eager立即加载。lazy懒加载。

在mybatis的配置文件中

即可。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python(win/linux)_pip安装库_永久换源配置/python --help 运行选项帮助/pip版本与python版本的对应关系查询/pip路径查询/(python怎么安装pip库)
下一篇:python_numpy入门_ndarry对象(by official documents)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~