Я хочу спросить, можно ли обрабатывать собственную аннотацию и генерировать собственный прокси-объект в классе, аннотированный с помощью @Component и собственной аннотации? пример:
@Component @MyAnnotation
class Clazz{
void init(){
// some code here
}
}
Я хочу создать такой прокси.
class ClazzProxy extends Clazz{
void init(){
// some new code here
super.init()
}
}
И после этого я хочу ввести прокси вместо Clazz. Любое предложение?
Я попытался изменить код во время компиляции с помощью AbstractProcessor, поэтому мне не понадобился бы какой-либо прокси-объект, и это кажется трудным, но я знаю, что lombok это делает. Если кто-нибудь знает, как добавить дополнительные строки в метод во время компиляции, я был бы признателен.
Спасибо
@Jesper Сначала я попытался сгенерировать код с помощью com.sun.tools.javac.tree.TreeMaker. Сейчас я попробую АОП, но не знаю, если это то, что мне нужно. Спасибо, в любом случае




Итак, вы хотите, чтобы при вызове метода
init()для объектаClazzвызывался дополнительный код? Для этого предназначено аспектно-ориентированное программирование (АОП), которое также поддерживает Spring. См. Справочную документацию: Аспектно-ориентированное программирование с помощью Spring