問題描述:
首先說明自己出現上述原因是因為在mapper接口上方用的是@mapper標簽,如果用@Repository標簽替換可以解決這個問題
(idea可以理解Spring的上下文。然而 UserMapper
這個接口是Mybatis的,IDEA理解不了。 而 @Autowired
注解,默認情況下要求依賴對象(也就是 userMapper
)必須存在。而IDEA認為這個對象的實例/代理是個null,所以就友好地給個提示。)
然后在網上還看到了其他的方法,但是並不實用:
方法2:
為 @Autowired
注解設置required = false
使用 @Autowired
注解時,若希望允許null值,可設置required = false,像這樣:
1 @Autowired(required = false) 2 private UserMapper userMapper;
這樣就不會有警告了。原因很好理解:IDEA認為userMapper是個null,給了警告;加上required = false后,使用 @Autowired
注解不再去校驗userMapper是否存在了。也就不會有警告了。
方法3:
用 @Resource
替換 @Autowired
像這樣:
1 @Resource 2 private UserMapper userMapper;
總結:后兩種方法也可以解決上面的問題,但是如果項目中有大量的地方需要改動,會相當麻煩,所以推薦開始的那種方法.