Я хочу простой в использовании API из cglib или некоторого класса-оболочки для достижения следующего преобразования класса, так что, хотя я использую класс без участия какого-либо прокси.Есть ли простой в использовании API CGLIB для генерации перехватчика методов без использования прокси-сервера?
@Entity
public class SomeProcess extends SomeProcessBase implements Serializable {
@ToBeTransformed
public void start() {
//do some business logics
}
}
После класс был преобразован, я ожидаю, что это будет так:
@Entity
public class SomeProcess extends SomeProcessBase implements Serializable {
public void start() {
Executor.execute(new Executable() {
public void execute() {
//do some business logics
}
});
}
}
Так что пока я хочу вызвать someProcess.start, я могу непосредственно использовать следующий код:
SomeProcess process = new SomeProcess();
process.start();
кроме
SomeProcess process = new SomeProcess();
SomeProcess processProxy = Proxy.wrapper(process);
processProxy.start();
Спасибо. Но я хочу, чтобы старое тело было обернуто, старое тело по-прежнему полезно. И я понимаю, что установить закрытый класс не так просто, поскольку после ссылки на параметр они должны быть скопированы во внутренний класс. Я не знаю, как это сделать с джавассистом. –
Согласно вашему ответу, новый вопрос должен быть следующим: Как создать новое тело со старым телом, вложенным в метод внутреннего класса. –
Вы можете переименовать start -> start0, создать новый старт и вызвать start0 из него –