在注入类的时候,@Autowired可能会出现
类似于在这里插入图片描述
此类问题
出现此情况有多种解决方法
解决1:启动类位置
(1)可以查看本地启动类放置位置,启动类一般要放在最外层的根目录位置,这样才能扫到同级别以及子级的类
同上图,如果你的类放在gdcp包外,启动类是扫描不到的
(2)如果上述满足,看是否是非启动类的module出现此现象,如果是非启动类的module出现,需要将启动类的module里的pom 文件引入出现此现象的module模块
(3)优先使用此方案解决
解决2:将@Autowired改为@Resource
两个注解的区别是 @AutoWried是Spring,@Resource是J2EE的
(1)使用@Resource能减少Spring耦合度
(2)@AutoWried按by type自动注入,而@Resource默认按byName自动注入。
(3)@Resource的查询注入顺序是,去Bean中查找Name,如果查不到就去查Class,其次再从属性去查找,如果我们定义的类中有相同的Name可能会报错,因为查询到了多个。
解决2:降低Bean的安全级别
此问题是建立在:程序能正常运行,但是依旧有红色波浪线报错,但是无影响单纯是看红色碍眼
降低安全级别后,恢复正常
此问题是Spring扫描问题,不造成太大影响,一般不常使用