2017-06-15 3 views
0

私のsrcコードは以下のようになりましたが、これをどのように修正できますか?@Beanの外で帰りましたnullpointerexceptionがありました

@Component("shiroSecurityConfig") 
public class ShiroSecurityConfig { 
    @Autowired (required = true) 
    private TestService testService; 

    @Bean(name = "shiroFilter") 
    public ShiroFilterFactoryBean shiroFilter() { 
     testService.getrecords(); //this line got null pointer exception. 
    } 
} 
+0

コンフィギュレーションコンテキストXMLファイルを共有してください。そうでない場合、コンフィギュレーションcontext.xmlファイルでコンポーネントスキャナを使用してパッケージをスキャンすると、すべてのクラスでオートワイヤリングを実行できます。 –

+0

質問はなぜこの方法で使用していますか? TestServiceがあり、ShiroFilterFactoryBeanが必要なときにいつでもBeanに注入し、getrecords()メソッドを呼び出すことができます。あるいは、TestService#getrecords()に@Beanを追加することもできます。私はそれが良いと思う –

答えて

2

オートワイヤリングは常に豆のライフサイクルの詳細については、それはまだautowiredされていないとして、なぜあなたはヌルとしてあなたtestServiceを取得しているされたBeanオブジェクトの構築後に発生

http://www.dineshonjava.com/2012/07/bean-lifecycle-and-callbacks.htmlを参照してください。

関連する問題