@Mapper与@Resource的区别
时间: 2023-07-22 15:58:05 浏览: 59
@和@Resource是Java中常用的注解,用于现依赖注入和映射。
@Mapper是MyBatis架中的注解,用于标识访问层的接口,通过它可以化数据库操作。@Mapper注解告诉Batis框架自动生成对应接口实现类,无需手动编SQL语句。在MyBatis的配置文件中配置了扫描@Mapper注解的包后,就可以通过@Autowired或@Inject将Mapper接口注入到其他件中使用。
@Resource是JavaEE中的注解,用于实现依注入。它可以通过或类型来自动入对应的Bean对象。当使用名称作为参数时,@Resource会根据名称查对应的Bean进行注入;当使用类型作为参数时,@Resource会根据类型查找对应的Bean进行注入。如果找到多个符合条件的Bean,则需要通过name属性来指定具体的Bean。
总结一下,@Mapper主要用于MyBatis框架中标识数据访问层接口,而@Resource是JavaEE中实现依赖注入的注解。
相关问题
@Resource和@mapper的区别
@Resource和@Mapper都是Spring框架中的注解,它们的作用有所不同。
@Resource注解用于注入对象实例,可以替代@Autowired和@Inject注解。它可以在类级别和字段级别使用,可以通过name属性指定要注入的bean名称,也可以通过type属性指定要注入的bean类型。在Spring中,@Resource注解是JSR-250规范的一部分,与Spring无关。
而@Mapper注解则是Mybatis框架中的注解,主要用于将Mapper接口与XML文件或者SQL语句绑定。在Mybatis中,Mapper接口是一个Java接口,其中定义了各种数据库操作方法,通过@Mapper注解可以将Mapper接口与对应的SQL语句绑定起来,实现数据的CRUD操作。
因此,两者的作用不同,@Resource主要用于注入对象实例,@Mapper则主要用于将Mapper接口与对应的SQL语句绑定。
@Autowired与@Resource
@Autowired与@Resource是用来实现依赖注入的注解,在Spring/Spring Boot项目中使用。它们具有一些不同之处。首先,它们的来源不同,@Autowired来自于Spring框架,而@Resource来自于Java的JSR-250。其次,它们依赖查找的顺序不同,@Autowired先根据类型再根据名称查询,而@Resource先根据名称再根据类型查询。另外,它们支持的参数数量和用法也有所不同。@Autowired只支持设置一个参数,而@Resource支持设置多达七个参数。关于依赖注入的用法支持,@Autowired既支持构造方法注入,又支持属性注入和Setter注入,而@Resource只支持属性注入和Setter注入。此外,在编译器IDEA中,当注入Mapper对象时,使用@Autowired注解编译器会提示错误,而使用@Resource注解则不会提示错误。需要注意的是,@Autowired是由Spring提供,而@Resource是由Java提供。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [面试突击:@Autowired 和 @Resource 有什么区别?你学会了吗?](https://blog.csdn.net/Candyz7/article/details/126578224)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [@Resource和@Autowired的区别与理解](https://blog.csdn.net/hanhanhanxu/article/details/106433857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]