どっちもフィールドインジェクションをやってくれる、
つまり初期化せずに宣言したフィールドに対して実行時に
勝手によろしくインスタンスを設定してくれるわけですが、
(いわゆるDIの1機能ですね)
通常は標準の方を使用することが推奨されるものの、
@ResourceはDIするとき該当クラスが見つからないとエラーになってしまうので、
その場合に「bindingType属性にBindingType.MAYを指定した@Bindingアノテーション」を
使うのが吉らしい。
■Seasar2再学習めも - Life goes on.
http://d.hatena.ne.jp/yukung/20100918/1284831067
ところでアノテーションの名前を文章に記述するときって「@」はつけるべき?
つけないべき?
「@Bindingアノテーション」って書くのと
「Bindingアノテーション」って書くのとどっちが正しいんだろう。
気分的に「@」付けたいからつけちゃってるけど。
S2DaoでDAOを作る際、クエリメソッドを
public List select(String abc);
とした。abcには"0"または"1"が入る予定。
で、SQLを、SQLコメントを使って
"SELECT ....." + "/*IF abc == '0'*/ WHERE ..... /*END*/"
とか書いていたら、うまく動かなかった。常にWHERE句が付かない状態。
正解(?)は、
"SELECT ....." + "/*IF abc == 0*/ WHERE ..... /*END*/"
だった。
つまり、シングルクォーテーションが余計だった。 でも、Stringなのに数値リテラルで判定するってなんか気持ち悪いなぁ。