5

私は多くのクラスを持っているパッケージ「Utils」を持っています。それらのいくつかは静的メソッドを持ついくつかのクラスであり、他のいくつかはコンストラクターでいくつかのパラメーターを渡すシングルトンです(基本的なXML構成をアノテーションで置き換えるために@Valueを使用します)。

パッケージをスキャンするために、ApplicationContextに構成があります。

だから、私の質問:静的メソッドを持つクラスの場合、シングルトンを持つために@Componentアノテーションで変換する必要がありますか(静的メソッドを使用したまま)、Springで管理せずにこの状態にする必要がありますか?

ありがとうございました

4

1 に答える 1

2

何らかの状態を維持する必要がある場合、またはコラボレーターがいる場合は、Spring コンポーネントを作成します。必要な機能がステートレスで、呼び出す他のメソッドの状態に依存しない場合は、静的にします。

たとえば、私のアプリには、最小値と最大値の間の整数をクランプする静的 util メソッドがありますが、現在の日付を返す Spring Bean があります...

@Service
public class DateServiceImpl implements DateService {
    @Override
    public Date getCurrentDate() {
        return Calendar.getInstance().getTime();
    }
}

なんで?現在の日付を使用するコードを単体テストできるようになったからです。

于 2012-12-06T14:57:04.297 に答える