×
文章路径: 框架 > mybatis

Mybatis中sqlSessionFactory mapperLocations属性配置

发表于1年前(May 12, 2017 8:06:33 PM)  阅读 2566  评论 0

分类: Java mybatis

标签: mybatis sqlSessionFactory mapperLocations classpath

用过mybatis的人都知道sqlSessionFactory中mapperLocations是用来配置mapper xml文件目录的,通常我们会这么配置classpath*:/com/cangzhitao/**/*Mapper.xml,这表示从classpath com/cangzhitao目录及其子目录下所有以Mapper.xml结尾的文件。cangzhitao后面的**就是表示任意多级目录,而classpath后面的*是什么意思呢?

笔者网上查找资料,发现很多文章都说classpath后面的*表示启用通配符,笔者实际测试,并非如此。笔者开始并没有加*,后面的通配符依然能起作用,并不像网上说的报错,不过也可能是因为版本不同的原因造成的,这里笔者的mybatis版本是3.4.4。笔者的项目是分了多个工程,mapper.xml文件分布在几个工程中,笔者在没有加*的时候,测试发现mybatis只能找到一个工程中的mapper.xml文件,而加上*,所有工程下面的mapper.xml文件就都能找到了,所以如果你也存在笔者这种情况,那么请你在classpath后面加上*。

关于web.xml中classpath和classpath*的区别,可以参考笔者的另一篇文章:指定log4j配置文件路径

发表评论