最近在做登录认证的时候发现,键入账户密码后后台总是报null错误
检查后发现导入的依赖没问题
yml配置文件也没问题
mapper文件也很正常
debug后发现
要导入的mapper接口为null,编辑器找不到mapper的地址,也就是说spring上下文中根本就没有这个bean
经过检查(就是百度)后发现是我在业务代码中new了个当前类的实例,问题在于当前类是被@Service注解所注解的类(绿色圈圈中)
因为在启动spring后,spirng会将所有bean,也就是被@RestController、@Service等注解所注解的类加载到容器内,并返回给ApplicationContextAware,其他类需要时将bean注入进去,但new出来的类不会被容器注入
因为在启动spring后,spring会将所有注解过的类加载容器内,并返回给ApplicationContextAware,在其他注解后的类需要对象时,容器会自动注入,当遇到new出来的类时就会与其发生冲突。