idea使用@Mapper注解提示无法注入问题

本文介绍了在IntelliJ IDEA中遇到的DAO层Mapper注入问题,如何通过设置@Autowired注解为required=false、更换@Component或@Repository以及关闭警告来解决。
摘要由CSDN通过智能技术生成

在idea中,dao层中使用了mapper注解,然而在主动注入的时候,idea缺提示你无法注入当然了,这个是不影响运行的

原因:这是因为idea可以理解Spring的上下文,但是无法理解mybatis的接口,也就是mapper这类,@Autowired 注解呢默认情况下要求依赖对象必须存在,所以idea就认为这个对象为空,也就给你提示了。

解决办法:

1. @Autowired 注解允许null值,设置required = false

  @Autowired(required = false)

 2.在持久层中用@Repository或者@Component代替@Mapper

3.关掉idea警告(不建议)

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,可以看出这是一个使用MyBatis框架的Java代码示例。在这个示例中,使用了SpringJUnitConfig注解来配置Spring和JUnit,并通过@Autowired注解注入了一个StudentMapper对象。在@Test注解的方法中,进行了一些数据库操作,比如删除、查询等。 根据问题描述,@select内部table爆红的问题可能是由于找不到对应的表或表名错误导致的。要解决这个问题,可以检查以下几个方面: 1. 确保数据库中存在对应的表,并且表名与代码中的表名一致。 2. 检查数据库连接配置是否正确,包括数据库名称、用户名、密码等。 3. 检查StudentMapper接口中的@select注解的参数是否正确,包括表名、字段名等。 如果以上检查都没有问题,还可以尝试重新编译项目,清除缓存并重新运行代码,看是否能够解决问题。 总结回答:当在@select注解内部的table出现爆红时,可能是由于找不到对应的表或表名错误导致的。可以检查数据库中是否存在对应的表,并确保表名与代码中的表名一致。另外,还可以检查数据库连接配置和@select注解的参数是否正确。如果问题仍然存在,可以尝试重新编译项目并清除缓存,看是否能够解决问题。 #### 引用[.reference_title] - *1* *2* *3* [Mybatis 使用通用 mapper](https://blog.csdn.net/Demo_Null/article/details/108507987)[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^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值