Java аннотация для обертывания метода

У меня много шаблонного кода, который в основном следует этому шаблону:

function doSomething() {
  try {
    [implementation]
    [implementation]
    [implementation]
    [implementation]
  } catch (Exception e) {
    MyEnv.getLogger().log(e);
  } finally {
    genericCleanUpMethod();
  }
}

Я хотел бы создать свою собственную аннотацию, чтобы немного очистить свой код:

@TryCatchWithLoggingAndCleanUp
function doSomething() {
  [implementation]
  [implementation]
  [implementation]
  [implementation]
}

Подписи методов сильно варьируются (в зависимости от фактической реализации метода), но шаблонная часть try/catch/finally всегда одинакова.

Аннотация, которую я имею в виду, автоматически обернула бы содержимое аннотированного метода со всей try...catch...finally шумихой.

Я долго искал прямой способ сделать это, но ничего не нашел. Не знаю, может быть, я просто не вижу леса за всеми аннотированными деревьями.

Любые указания на то, как я могу реализовать такую аннотацию, будут очень признательны.

28
задан TroutKing 28 December 2011 в 16:13
поделиться