Spring を使用するためにレガシー Java アプリケーションをリファクタリングしています。
これには、アプリケーション クラスを Spring Bean として宣言し、出現するすべてのnew
をcontext.getBean
OR に置き換えることが含まれDI
ます。
一部のクラスがシングルトンになるように、アプリケーション ロジックを書き直しています。ただし、それらは他の場所で new を使用してインスタンス化されているため、複数のコピーが存在し、ビジネス ロジックが台無しになります。予測できない方法で実行して誤動作するのではなく、オブジェクトを単独でインスタンス化しようとするたびに、アプリケーションが明示的に失敗するようにしたいと考えています。(リファクタリングがアプリケーションの 100% をカバーしているかどうかはわかりませんが、まだ隅に新しいものが潜んでいる可能性があります)
クラスがSpringコンテナによってのみインスタンス化できることを保証する最良の方法は何ですか? (クラスごとにファクトリーを書くのは避けたいと思っています)