首页 > 开发 > Java > 正文

SpringBoot集成shiro,MyRealm中无法@Autowired注入Service的问题

2024-07-14 08:43:43
字体:
来源:转载
供稿:网友

网上说了很多诸如是Spring加载顺序,shiroFilter在Spring自动装配bean之前的问题,其实也有可能忽略如下低级错误。

在ShiroConfiguration中要使用@Bean在ApplicationContext注入MyRealm,不能直接new对象。

道理和Controller中调用Service一样,都要是SpringBean,不能自己new。

错误方式:

@Bean(name = "securityManager")public SecurityManager securityManager() {    DefaultWebSecurityManager manager = new DefaultWebSecurityManager();    MyRealm myRealm = new MyRealm();    manager.setRealm(myRealm);    return manager;  }

正确方式:

@Bean(name = "myRealm")public MyRealm myAuthRealm() {    MyRealm myRealm = new MyRealm();    return myRealm;  }@Bean(name = "securityManager")public SecurityManager securityManager(@Qualifier("myRealm")MyRealm myRealm) {    DefaultWebSecurityManager manager = new DefaultWebSecurityManager();    manager.setRealm(myRealm);    return manager;  }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VeVb武林网的支持。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表