2016-05-01 12 views
0

class Aclass Bオブジェクトを@Autowiredアノテーションを使用して使用しています。スプリングフレームワーク:2つのクラスで同じ自動ワイヤードオブジェクトを使用する

class Aは同じ@Autowiredアノテーションを使用して初期化class Bの同じオブジェクトを使用class Cの関数を呼び出す関数を有しています。 Aはサービス、BはDBコールです。 Bのスコープはシングルトンです。それは悪いデザインですか?ここで間違っていることがありますか? BクラスのオブジェクトをAクラスのCクラス関数の変数として渡す方が良いでしょうか?また、BはDB呼び出しであり、複数の要求が同時に発生した場合(Aはサービスであり、多くのサービス機能を持っています)、すべての要求が処理されます。

私の推測はネットワークですが、私は春がそれを処理するとは思わない、または私の機能でそれを処理する必要があります。

+0

あなたのbeanとメソッドを 'synchronized'宣言しない限り問題にはなりません。 – Everv0id

答えて

1

いいえ、それ自体が悪いデザインではありません。

複数のスレッドが同時にクラスBのメソッドを呼び出すことができ、クラスBがステートレスでも不変でもない場合は、スレッドセーフであることを確認するために必要な予防措置を講じる必要があります。 「ネットワーク」は自動的にスレッドセーフではありません。

関連する問題