>スレッドセーフになりますか?
ここで言う setter injection てのは
定義ファイルに書いといてコンテナにDIしてもらう事?

Action も Service も singleton="false" にすれば
スレッドセーフを考えなくてもOK。(コストは最悪。)

>ActionSupport使うしかないんですかね?
ActionSupport も Action に違いないので
インスタンス変数持たせたら大変。

インスタンス変数を ThreadLoacal で保持させる方法も考えられるけど、
サーブレットコンテナが Action のインスタンスを使い回したりするから、
execute 抜ける前に、確実に変数クリアする等の注意が必要。

結局、いろいろやるより、Service 層をスレッドセーフにした方が楽。