2016-03-25 10 views
0

Spring Bootで構築された単純なアプリケーションを作成したいと思います。私はフレームワークの経験がなく、この問題は私の外にあります。Spring Bootであらかじめ定義されたBean

私のアプリでセキュリティモジュール、特にorg.springframework.security.authentication.encoding.ShaPasswordEncoderクラスを使用したいと思います。私はこれをbeanとしてautowiredにしたいと思っています。

Spring Bootでの定義方法を教えてください。たとえば、this answerはXMLファイルでBeanを「通常の」Springで使用する方法を説明しています。しかし、私がBoot概要を読んでいたときに、XML設定が必要ないと述べたので、設定ではなくコードで何らかの形でこれを行うことは可能ですか? Boot-ishの方法は何ですか?

私はこのコードを使用してエンコーダクラスを取得しようとしました。

@Autowired 
private ShaPasswordEncoder passwordEncoder; 

しかし、私は例外を取得:org.springframework.beans.factory.NoSuchBeanDefinitionException - それが定義されていないが、どのように私はそれを定義していますか?

おかげ

+2

私はあなたがまだ 'Bean' @で' Configuration'とメソッド@を持つクラスを定義することができると思います。 –

答えて

2

豆は次のようにコードに定義することができます。

@Bean 
public ShaPasswordEncoder passwordEncoder() { 
    return new ShaPasswordEncoder(); 
} 

この方法は、春によって管理される「passwordEncoder」という名前のBeanを作成します。それはあなたが@SpringBootApplication -annotatedクラス、または@Configurationでアノテート任意のクラスでこのメソッドを置くことができるXMLスタイル

<bean class="org.springframework.security.authentication.encoding.ShaPasswordEncoder" id="passwordEncoder" /> 

のと同じです。

More info here

関連する問題