SpringBoot集成shiro,MyRealm中无法@Autowired注入Service怎么办

小编给大家分享一下SpringBoot集成shiro,MyRealm中无法@Autowired注入Service怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

创新互联专业为企业提供梧州网站建设、梧州做网站、梧州网站设计、梧州网站制作等企业网站建设、网页设计与制作、梧州企业网站模板建站服务,10年梧州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

网上说了很多诸如是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;
  }

看完了这篇文章,相信你对“SpringBoot集成shiro,MyRealm中无法@Autowired注入Service怎么办”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站题目:SpringBoot集成shiro,MyRealm中无法@Autowired注入Service怎么办
浏览地址:http://scyanting.com/article/gdjeep.html