Seasar2_ETC

@Resourceアノテーションと@Bindingアノテーションの違い

どっちもフィールドインジェクションをやってくれる、 つまり初期化せずに宣言したフィールドに対して実行時に
勝手によろしくインスタンスを設定してくれるわけですが、 (いわゆるDIの1機能ですね)

  • @Resource:JavaEE標準の(EJB3の?)アノテーション
  • @Binding:Seasar2独自

通常は標準の方を使用することが推奨されるものの、
@ResourceはDIするとき該当クラスが見つからないとエラーになってしまうので、
その場合に「bindingType属性にBindingType.MAYを指定した@Bindingアノテーション」を
使うのが吉らしい。

■Seasar2再学習めも - Life goes on.
http://d.hatena.ne.jp/yukung/20100918/1284831067

ところでアノテーションの名前を文章に記述するときって「@」はつけるべき?
つけないべき?

「@Bindingアノテーション」って書くのと
「Bindingアノテーション」って書くのとどっちが正しいんだろう。
気分的に「@」付けたいからつけちゃってるけど。

SQLコメントのIF文

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なのに数値リテラルで判定するってなんか気持ち悪いなぁ。

最終更新:2012年10月10日 14:24