Какие возможности у меня есть, чтобы добавить функциональность в методы (аннотированные), не беспокоя разработчиков при помощи динамических прокси?Способы инъекции функциональности (аналогичные динамическому прокси, но менее навязчивым)
Классический пример:
public int sum(int x, int y){
StaticInstance.doThisBefore(x,y); // ccc
int result = x+y; // business functionality
StaticInstance.doThisAfter(result); // ccc
return result;
}
Так точно, что динамический прокси-сервер может сделать. Проблема с динамическим прокси-сервером - это способ навязчивости.
- Аннотация процессор позволяет вам только создавать новые классы, но не изменяющие существующие (я правильно?)
- модифицирующих байт-код?
- Codeweaver?
- Агент не может быть использован.
Разработчик может использовать Spring Framework, Java EE или любую основу, он любит, так что это очень важно, чтобы стиль & путь кода разработчика не влияет.
Поэтому очень важно, чтобы этот вариант был неинтрузивным.
Вы хотите изменить источник или байт-код? – ArcticLord
Взгляните на AspectJ? – DavidL
@ArcticLord оба пути возможны - что лучше всего работает? Есть идеи? – Reymanx