質問

私館ウェブアプリケーション用のストライプおよびます。このニーズにログイン認証の特徴です。今は、ユーザの情報からユーザー資格情報のデータベースです。私のユーザーモデルに含まれていない資格としているパスを回しながら貴重なパスワードを

春を全て管理しているのDAOです。

今の私の実施に非コンテナに基づくセキュリティシステム。ステレオフォーンジャッsha-2のハッシュのパスワードを行うとの比較にパスワードを提出したのに対し何データベースに保存されているこの比較について開発にも取り組んでいます。私はそうとしていることをどのようにワイヤーこのことです。今現在、LoginActionBeanる漁獲量のログイン要求を用いて"PasswordService"シングルトンを使用したUserDAO内部で取得する資格を比較しに対するパラメータを提出する。私の春豆は:

<bean id="passwordSerivce" class="com.example.store.authentication.PasswordService" factory-method="getInstance">
    <property name="userDAO" ref="userDAO"/>
</bean>

そのPasswordServiceシングルトンのニーズa

public void setUserDAO(UserDAO userDAO) { ...}

る方法がないの意味にシングルトン(UserDAOインターフェイス).

なんと、通常適切なデザイン。このままServiceLocatorsのような理由から春に誕生するに至りました。意思い?

思いの他のできるデザインです。いActionBeanることが呼び出されるのは、ユーザがクリック"にログイン"だが、私は実際に認証.いま注入による認証サービスの豆?いを作りたいsingletonれにでもできるのか?い汎用インタフェースのLoginAcionBean使用する春の方法で得られる太?がんリングを使用、あなたは何点ぐらいになると思い可能性がある。

役に立ちましたか?

解決

  1. いかなる意味においても注入のuserDao.

  2. かわからないのはなぜおxmlを利用工場-method="getInstance";ま捨てることができすべてのインスタンスは、シングルトンもの;春インスタンスを生成単一のインスタンスのパスワードサービスクラスを入れが多くの授業を必要としていると彼らは全く同一のインスタンスとなります。なので春にはシングルトンです。パスワードのサービスクラスで簡単にpojo.同様に、userDaoの実装です。

いても助言を見て、理解し、バネを使用してアンソロジー。基本的にはご利用@サービスのクラス投入により、その利用@Autowiredのセッタークラスのものを噴射します。を追加する必要がありま何かをxmlの設定ファイルをアノテーション。

他のヒント

あなたはDAOのためのセッターをしたくない場合は、

上記の回答に加えて、ちょうどコンストラクタ・インジェクションを使用します:

<bean id="passwordSerivce" class="...PasswordService">
   <constructor-arg ref="userDAO"/>
</bean>
豆はあなたがコントロールクラスではない場合を除き、あなたはそれをシングルトンを作成する必要はありません

、春がデフォルトであることを行います。

私は個人的には、注釈のファンではありません。

私のソリューションは、「認証」方式とのインタフェースを持っていることでした。そして、UserDAOオブジェクトに取るコンストラクタとのインタフェースを実装するサービスクラスを作成します。この方法では、サービスを必要とするオブジェクトは、インスタンス化を実行する(それがスプリングによって行われています)と、基礎となる実装は(LDAP、SSO、簡単なパスワード比較、など)に行われているものを知らないではありません。仕事を得るようだ:P

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top