2013-08-16 4 views
1

Я хочу создать класс, который проксирует все вызовы методам на свой суперкласс с информацией журнала (например, до/после операторов, например).Использование аспектов для инъекции InvocationHandlers без класса Proxy

Однако структура, использующая этот класс, будет загружать ее с помощью нового вызова (..), либо через другие механизмы отражения, поэтому я не могу использовать семантику Proxy для запуска класса.

Есть ли способ заставить новые и newInstance() операции использовать прокси во всех случаях - или нам нужно явно создавать экземпляры класса InvocationHandler с помощью Proxy API?

В частности: Я отлаживаю распределенную структуру, которая уже имеет свой собственный способ создания экземпляров класса из файлов XML во время выполнения (hasoop - mapreduce).

ответ

1

Я не думаю, что вы можете легко паттать обезьяны в Java. Я думаю, вы можете попробовать AOP или взломать класс напрямую (так как у вас будет источник, так как это hasoop). В противном случае, я думаю, что изменение варианта отражения или байта может быть вариантом, но все они будут очень неприятными. Взлом класса напрямую и использование взломанной банки звучит как самый простой способ для меня.

Btw Привет :)

+0

согласился, что, возможно, добавив в взломанной банку, который gauranteed иметь приоритет в ClassLoader, может быть правильный путь. – jayunit100

+0

Hi enno! Только сейчас узнаем о БЫТЕМАНЕ. Может быть, это поможет, но не уверен. – jayunit100