Ретро-активно добавлять аннотации Java к методам?
-
26-10-2019 - |
Вопрос
Есть ли способ изменить файлы .class, чтобы добавить аннотации Java к определенным методам? В основном я хочу пройти методы каждого файла класса в файле JAR и аннотировать определенные. Обратите внимание, что это не во время выполнения при использовании файла JAR. Скорее, после того, как я закончу, я хочу изменить файлы классов с помощью аннотаций.
У меня есть доступ к исходному коду, поэтому, если есть автоматический модификатор исходного кода, это также будет работать ...
Я предполагаю, что мне понадобится инструмент, такой как Явасист или же КАК М. Анкет Если да, то какой из них мне следует использовать и как бы я это сделал?
Решение 2
Гуглить в течение часа или около того повернуто эта статья вверх, который, кажется, полностью отвечает на мой вопрос: используйте КАК М. Анкет Чтобы написать файлы классов, используя измененный байт -код, используйте Класс.
Ну, я думаю, время приступить к работе. :)
Другие советы
На самом деле, это классический вариант использования для аспекта:
declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor")
Хотя я предоставлю вам, что прямые манипуляции с кодом байтовых кодов являются более мощным, аспект гораздо более удобен для пользователя, и он сразу же дает вам предупреждения компилятора, когда вы делаете что-то не так.
Также, если вы используете Время загрузки, вы можете оставить оригинальную библиотечную банку без изменений, потому что ткачество происходит во время загрузки класса.
Ссылка:
- Объявить аннотацию
- Аспект в действии (книга)