浅谈@mapper引入不到引入的是@MapperScan的问题

 更新时间:2020年10月22日 10:17:52   作者:yaoyaowudi123  
这篇文章主要介绍了浅谈@mapper引入不到引入的是@MapperScan的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

两种防水都可以,但是使用方式不同。

@mapper需要mybatis和mybatis-spring的版本足够的高才可以。

不然导入不到@mapper。

补充知识:关于MyBatis的@Mapper和@MapperScan注解的一点思考

最近有空回顾mybatis,想起@Mapper注解一直没弄明白是干嘛的,代码上的注释写的很简单(Marker interface for MyBatis mappers),开发过程中也没用到,但网上各种资料偶有出现他的身影。问了度娘,都没讲清楚,我决定自己思考下这个问题,看看他究竟是干嘛用的。

1、来源

Mapper来自mybatis-3.5.3.jar包

MapperScan来自mybatis-spring-2.0.3.jar包

2、作用

Mapper注解没有被任何类接口引用,看不出来有何作用

MapperScan注解被MapperScannerRegistrar的registerBeanDefinitions方法所引用,目的是将basePackages定义的所有包下的所有接口生成一个org.apache.ibatis.binding.MapperProxy代理bean,这样就可以用@Autowired注解进行装配使用了。

3、疑问

Mapper注解没有被任何类使用,那他用来干嘛的,MapperScan用来扫描定义包下的所有的接口,无论这个接口你的设计目的是用来干嘛的,他都会生成一个bean(经测试,@Service实现的接口和@FeignClient注解的接口,即使他已经都相关的程序注册了一个bean,MapperScan还是会将这些接口再注册一个bean,导致出错)。

如此不合理的地方,到底是哪里出现问题?

4、我的思考

带着上面的问题,我又在重新查看了@MapperScan,发现里面有个annotationClass,默认值是Annotation.classs。

Class<? extends Annotation> annotationClass() default Annotation.class;

假若我们的注解如此写呢,是不是能解决上面的2个问题。

@MapperScan(basePackages = "com.zhi.test", annotationClass = Mapper.class)

经验证,Mapper找到了合理的使用,一些无关的接口也不再注册为一个bean。

以上这篇浅谈@mapper引入不到引入的是@MapperScan的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 深入理解Java原生的序列化机制

    深入理解Java原生的序列化机制

    Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。下面小编和大家来一起学习一下吧
    2019-06-06
  • Java中如何判断是否为闰年详细实例

    Java中如何判断是否为闰年详细实例

    所谓闰年就是指2月有29天的那一年,下面这篇文章主要给大家介绍了关于Java中如何判断是否为闰年的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Java详细解析下拉菜单和弹出菜单的使用

    Java详细解析下拉菜单和弹出菜单的使用

    这篇文章主要介绍了怎么用Java来创建和使用下拉菜单和弹出菜单,下拉菜单和弹出菜单是我们经常要用的工具,但是你有想过自己怎么去实现它吗,感兴趣的朋友跟随文章往下看看吧
    2022-04-04
  • 修改xml文件再也不用重启项目mybatis-xmlreload方法

    修改xml文件再也不用重启项目mybatis-xmlreload方法

    这篇文章主要为大家介绍了修改xml文件再也不用重启项目mybatis-xmlreload,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java泛型与数据库应用实例详解

    Java泛型与数据库应用实例详解

    这篇文章主要介绍了Java泛型与数据库应用,结合实例形式详细分析了java继承泛型类实现增删改查操作相关实现技巧,需要的朋友可以参考下
    2019-08-08
  • Java的函数式编程详解

    Java的函数式编程详解

    用了这么久的Java8,我寻思这种话也好意思说出来吗,难道自己是PythonBoy出身就是看不懂Java的理由吗,身为一个合格的后端Boy不会还有人看不明白Java的函数式编程吧,接下来小编和大家浅聊一下Java的函数式编程,需要的朋友可以参考下
    2023-10-10
  • springboot2版本无法加载静态资源问题解决

    springboot2版本无法加载静态资源问题解决

    这篇文章主要介绍了springboot2版本无法加载静态资源问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • MyBatis-Plus实现对查询结果进行分页的基本步骤

    MyBatis-Plus实现对查询结果进行分页的基本步骤

    MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生,MyBatis-Plus 支持多种数据库的分页查询,其分页功能是通过 Page 类实现的,本文介绍了使用 MyBatis-Plus 实现分页查询的基本步骤,需要的朋友可以参考下
    2024-08-08
  • Java8 Optional常用方法使用场景分析

    Java8 Optional常用方法使用场景分析

    这篇文章主要介绍了Java8 Optional常用方法使用场景,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • java calendar 日期实现不断加一天的代码

    java calendar 日期实现不断加一天的代码

    这篇文章主要介绍了java calendar 日期实现不断加一天的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10

最新评论