org.seasar.doma
注釈型 AnnotateWith


@Target(value={TYPE,ANNOTATION_TYPE})
@Retention(value=RUNTIME)
public @interface AnnotateWith

Daoインタフェースの実装クラスのソースコードにアノテーションを注釈することを示します。

このアノテーションには2種類の使い方があります

このアノテーションを直接的であれ間接的であれDaoインタフェースに注釈する場合、Dao.config() に値を設定してはいけません。

例:直接的に注釈する方法
Guice のアノテーションを注釈するには次のように記述します。
 @Dao
 @AnnotateWith(annotations = {
         @Annotation(target = AnnotationTarget.CONSTRUCTOR, type = Inject.class),
         @Annotation(target = AnnotationTarget.CONSTRUCTOR_PARAMETER, type = Named.class, elements = "\"sales\"") })
 public interface EmployeeDao {
     ...
 }
 
実装クラスは次のようになります。
 public class EmployeeDaoImpl extends org.seasar.doma.internal.jdbc.dao.AbstractDao implements example.EmployeeDao {
 
     @com.google.inject.Inject()
     public EmployeeDaoImpl(@com.google.inject.name.Named("sales") org.seasar.doma.jdbc.Config config) {
         super(new org.seasar.doma.jdbc.ConfigProxy(config));
     }
     ...
 }
 
例:間接的に注釈する方法
AnnotateWith を任意のアノテーションに注釈し、そのアノテーションをDaoに注釈することも可能です。 たとえば、ここでは、 GuiceConfig というアノテーションに AnnotateWith を注釈する例を示します。
 @AnnotateWith(annotations = {
         @Annotation(target = AnnotationTarget.CONSTRUCTOR, type = Inject.class),
         @Annotation(target = AnnotationTarget.CONSTRUCTOR_PARAMETER, type = Named.class, elements = "\"sales\"") })
 public @interface GuiceConfig {
     ...
 }
 
GuiceConfig をDaoに注釈すれば、AnnotateWithを直接注釈した場合と同様の実装クラスが生成されます。
 @Dao
 @GuiceConfig
 public interface EmployeeDao {
     ...
 }
 

作成者:
taedium

必須要素の概要
 Annotation[] annotations
          アノテーション
 

要素の詳細

annotations

public abstract Annotation[] annotations
アノテーション



Copyright © 2009-2014 The Seasar Foundation. All Rights Reserved.