关于mybatis的扫描包的映射配置

关于mybatis的扫描包的映射配置

老师,在先前学习mybatis中,在mybatis的总配置文件里,mappers签名用来加载一些映射的配置文件,如:

	<mappers>
		<mapper resource="mapper/UserMapper.xml"/>
	</mappers>

这里是加载mapper目录下的UserMapper.xml配置映射文件

可是,mappers还有一种简化配置代码的方式,就是配置一个包路径的那种方式,如:

	<mappers>
		<package name="com.imooc.sm.dao"/>
	</mappers>

这个应该是扫描在com.imooc.sm.dao下的mybatis相关注解吧,意思是说这样配置后,允许在dao包下以注解方式创建SQL语句,可是本项目中,将mybatis的包扫描整合到给spring管理,配置如下:

    <!-- Spring整合Mybatis -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/sm?useUnicode=true&amp;characterEncoding=utf-8"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
    </bean>
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="typeAliasesPackage" value="com.imooc.sm.entity"/>
    </bean>
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.imooc.sm.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

但是在java源代码文件目录和resource资源目录下都有一个com.imooc.sm的目录,请问,这样配置以后,mybatis是扫描哪个包下的注解啊?还是两个地方的包都扫描么?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好。编译之后,实际上,会将java源代码文件中和resources文件夹下的同一个包路径的放在一起,像下图这样:所以运行时,扫描的实际是这个包哦

http://img1.sycdn.imooc.com//climg/5d3c234700016f2a05390452.jpg

如果解答了同学的疑问,望采纳~

祝学习愉快~


  • 哆丶哆 提问者 #1
    那就是说java目录下和resources目录下的东西都会被放到target的classes下面,然后通过包配置扫描的时候是扫描这里的东西,是这样吧?
    2019-07-27 18:42:55
  • 好帮手慕阿莹 回复 提问者 哆丶哆 #2
    是的,同学理解的没错,祝学习愉快
    2019-07-27 19:04:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师