Какую библиотеку выбрать для генерации классов во время выполнения - PullRequest
2 голосов
/ 21 июня 2011

Мне нужно расширять классы во время выполнения, особенно для обнаружения изменений, внесенных в состояние классов. Если это возможно, я хотел бы иметь возможность обнаруживать изменения путем перехвата назначений полей, если не перехватывать установщики, то все будет в порядке. Какую библиотеку мне использовать и почему? Джавассист или cglib или? Это возможно с java.lang.reflect.Proxy? Можете ли вы сравнить эти библиотеки? Спасибо.

1 Ответ

2 голосов
/ 21 июня 2011

Для перехвата сеттеров, определенных в интерфейсе, вы можете использовать прокси.

Для перехвата вызовов методов вы можете использовать AOP, такой как AspectJ.

Однако, чтобы перехватить назначения полей, я бы использовал библиотеку байт-кода, такую ​​как ASM, BCEL, cglib или javassist. Я предпочитаю ASM, и он быстрый и имеет некоторые инструменты, облегчающие написание байт-кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...