2012-03-09 2 views
0

私はセッションでは、私の@ControllerでBeanをスコープしている:それはSessionPreferencesと呼ばれ、私はSpring MVCの汎用コントローラー

は、ほとんどすべての私のコントローラのそれを利用して、その名前は、それが:-)何をするかを説明します期待しています@Autowiredを介して各コントローラに簡単に注入することができます。

私はこのような重複を避けるためにどうすればいいですか?すべての共有参照をサービス、その他のBeanなどに格納するために、アプリケーションに「父」コントローラを持たせることはできますか?

+0

「もっと深く」とはどういう意味ですか? – skaffman

答えて

1

コントローラーが実装している抽象クラスは役に立ちますか?

もし私があなたを理解しているのであれば、あなたは基本的にすべてのサービスとダオを直接注入し、残りのクラスはそれを継承するクラスが欲しいですか?

これは、クラスがあなたが注入するシングルトンを参照するときに、プロキシを設定する方法に問題が生じる可能性があります。しかし100%ではありませんが、これを避けたいかもしれません。

サービスを中断した場合、その基本クラスを継承しているすべてのコントローラが壊れてしまいますが、実際にはこれをお勧めしません。あなたはあなたのアプリケーションの余りにも多くの面であなたのコントローラーを結合しています。

+0

私は抽象クラスが動作するはずだと思います。 – aglassman

+0

@dardo:すべてのコントローラで使用できるようにSessionPreferencesKeeper Beanが必要です。あなたがコントローラの継承を使用するよりもどこにでも注入する方が良いと思うなら.......私に教えてください:) –

+0

私はそれが個人的には良いと思います。そうすれば、あなたはバネにシングルトンのプロキシを処理させることができます。あなたがあなたのサブクラスすべてからインジェクションを継承していれば、私は笑っているかもしれませんが、競合に問題があります。 – dardo

関連する問題