私は AOP を学んでおり、ポイントカット、アドバイスなどに慣れています。何を尋ねようとしているのか、不可能だと確信していますが、とにかく尋ねたいと思っています。
userId を取得し、データベースからユーザーのレコードをフェッチして、レコードに対して何かを行うメソッドがあります。さまざまなことを行う 20 の異なるメソッドがありますが、それらはすべて userId を入力として受け取り、データベースからレコードを取得します。私には、これはある側面に引き込むことができる横断的な関心事のように見えます。
しかし、どのように?引数 (この場合は userId) にアクセスし、メソッドの戻り値にアクセスして、メソッドの例外をキャッチできることはわかっています。しかし、メソッドに何かを与えるにはどうすればよいですか(この場合、データベースに記録しますか?)
public String printUserDetails(String userId)
{
Record record = Database.fetchRecord(userId);
System.out.println(record.getDetails());
return record.getTitle();
}
では、そのデータベース アクセス コードをアスペクトに取り込む方法はありますか?
私が考えることができる1つの方法は、入力に対して次のようなものを宣言することです
class RequestObject
{
String userId;
Record record;
}
アスペクトにレコードを挿入してから、proced() を呼び出します。しかし、これはどういうわけか間違っているように感じます。