SpringBoot統合shiro、MyRealmでは@AutowiredにServiceを注入できない問題


インターネットではSpringローディングのような多くの話をしていますが、ShroFilterはSpring自動組立beanの前に問題があります。実は以下のような低レベルなエラーを無視する可能性もあります。
ShroConfigrationで@Beanを使用してApplication Controtに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;
  }
締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。もっと知りたいなら、下のリンクを見てください。