目录



前言

​@Autowired​​​默认情况下要求依赖对象必须存在,而​​IDEA​​​对于​​Mybatis​​​接口的注入是无法理解的,被认为该对象是​​null​​,虽然代码能正常运行,但有警告总归膈应

关于 IDEA 中 Mybatis Mapper 自动注入警告的解决方案_解决方案


解决方案

为 @Autowired 注解设置 required = false


  • 设置​​required = false​​​后,不强制该对象在​​Spring​​​容器中,可以允许为​​null​

@Autowired(required = false)
private UserMapper userMapper;


用@Resource替换@Autowired

@Resource
private UserMapper userMapper;


在Mapper接口上添加@Repository注解

@Repository
public interface UserMapper extends Mapper<User> {

}


使用Lombok - @RequiredArgsConstructor注解


  • ​@RequiredArgsConstructor​​​会为​​final​​的属性产生一个构造函数。

@RestController
@RequestMapping("/user")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class UserController {

private final UserMapper userMapper;

}



  • 生成的源码如下:

@RestController
@RequestMapping({"/user"})
public class UserController {
@Autowired
private final UserMapper userMapper;

@Autowired
public UserController(final UserMapper userMapper) {
this.userMapper = userMapper;
}
}

关于 IDEA 中 Mybatis Mapper 自动注入警告的解决方案_IntelliJ IDEA_02


以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦