質問: お世話になっております。 とあるクラスをそのクラスからプロパティファイル等を参照したいため(プロパティ参照クラスをautowiredしたいため)spring componentに追加するか迷っています。 そのクラスはユーティリティのような扱いでstaticメソッドしか持っていません。(フィールドもなし) よって、シングルトンで問題なさそうなので、以下の対応をしようと思っています。 ・@componentを付与 ・全メソッドのstatic修飾子を削除 ・サービスにコンポーネント化したクラスをautowired ・呼び出し方法をstatic参照からインスタンス参照に変更 component化することで他に考慮が必要な点ありましたら教えてください。 むしろすべきでない、なら理由を教えて頂きたいです。
回答: 質問文中の対応で、全く問題ありません。 問題がなさ過ぎて回答に書くことがないので、蛇足として書いておくと、 もしコンポーネント化するクラスが何らかのデータを保持するプロパティを持っていた場合、 そのプロパティはマルチスレッドで操作される可能性があるので、この方法は取れません。 (そのプロパティをマルチスレッドで扱えるようにすればできないことはないかもしれませんが、コンポーネントがデータを持つこと自体がアンチパターンな気がします。) 質問文中に「フィールドもなし」とあるように、今回はそのようなプロパティはないので、やはり問題ありません。