|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 必須 | オプション | 詳細: 要素 |
@Target(value=METHOD) @Retention(value=RUNTIME) public @interface Delegate
委譲を示します。
このアノテーションが注釈されるメソッドは、 Daoインタフェースのメンバでなければいけません。
to
要素に指定されたクラスのインスタンスは、注釈されたメソッドが実行されるたびにインスタンス化されます。
インスタンス化後、注釈されたメソッドと同じシグニチャのメソッドが実行されます。
to
要素に指定されるクラスは次の制約を満たさなければいけません。
Config
型の1つのパラメータ、もしくはConfig
型と呼び出し元のDaoインタフェースの2つのパラメータを受け取る public
なコンストラクタをもつ。
@Dao(config = AppConfig.class) public interface EmployeeDao { @Delegate(to = EmployeeDaoDelegate.class) int execute(Employee employee); }
コンストラクタのパラメータがConfig
型
public class EmployeeDaoDelegate { private final Config config; public EmployeeDaoDelegate(Config config) { this.config = config; } public int execute(Employee employee) { ... } }
コンストラクタのパラメータがConfig
型とDaoインタフェース
public class EmployeeDaoDelegate { private final Config config; private final EmployeeDao dao; public EmployeeDaoDelegate(Config config, EmployeeDao dao) { this.config = config; this.dao = dao; } public int execute(Employee employee) { ... } }
必須要素の概要 | |
---|---|
Class<?> |
to
委譲先のクラスです。 |
要素の詳細 |
---|
public abstract Class<?> to
指定できるクラスには制約があります。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 必須 | オプション | 詳細: 要素 |