本文主要是介绍Mybatis中mybatis.mapper-locations和@MapperScan的作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SpringBoot集成Mybatis时mybatis.mapper-locations和@MapperScan的作用
之前与数据交互一直使用的ORM框架,新公司使用的是mybatis,现做一些总结。
1、mybatis.mapper-locations的作用
mybatis.mapper-locations在SpringBoot配置文件中使用,作用是扫描Mapper接口对应的XML文件,如图中所示:扫描的是resources下的mapper文件夹中所有的xml结尾的文件。
_注:如果全程使用@Mapper注解,可以不使用该配置,即@Mapper可以替代Mapper接口对应的.xml文件,SpringBoot提倡“约定优于配置”。_*
我们可以点进去,可以看到是@ConfigurationProperties修饰的类,它的作用是将配置文件中的属性映射到对象中
此处是会将配置文件中以mybatis前缀的属性映射到对应字段上,即将mybatis.mapper-locations通过set方法映射到MapperLocations属性上
2、@MapperScan的作用
@MapperScan写在SpringBoot的启动类上(xxxApplication.java),作用是扫描Mapper接口类。
点进去可以看到@MapperScan会注册BeanDefinition到BeanFactory中,即生成接口对应的实现类。具体怎么实现不在此处赘述,有兴趣可以自行查看源码
@Retention作用是定义被它所注解的注解保留多久
@Target表明注解的作用目标
Documented注解表明这个注解应该被 javadoc工具记录
@Import注解就是之前xml配置中的import标签,可以用于依赖第三方包中bean的配置和加载
@Repeatable注解表明标记的注解可以多次应用于相同的声明或类型
----------------------------------------------------分割线--------------------------------
总结:
1、mybatis.mapper-locations在SpringBoot配置文件中使用,作用是扫描Mapper接口对应的XML文件
2、@MapperScan会扫描Mapper接口类,并生成对应的实现类。
这篇关于Mybatis中mybatis.mapper-locations和@MapperScan的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!