场景:
在Springboot整合shiro过程中,在shiroRealm中需要注入userService 去数据库中查询用户的权限等信息,期间遇到 userService为空的情况,检查了N遍,在网上搜了好久都没有找到解决办法,甚至一度以为是因为 Spring没有把 shiroRealm加载进来,使用@Component 注解进行标记,但结果还是一直为空,然后一直在往这个方向检索,但查无所获,再冷静下来仔细排查后,换了一个思路,在这个思路的引领下,在网上查阅前人经验,最终成功解决了这个问题。
废话不多说,直接上原因。
解决办法:
在自己思路改变后,通过查询大佬的经验,明白了,原来是在ShiroConfig.java里面获取shiroRealm对象方法上漏加@Bean注解。如下图:
原来没有加@Bean,加上该注解后,重新启动项目,再次发起请求,这时,原来shiroRealm中为空的 userService 成功通过@Autowired 注解加载进来。
感谢大佬的经验:https://blog.youkuaiyun.com/qq_38593865/article/details/80840107