Обработка аннотаций Spring

Я хочу спросить, можно ли обрабатывать собственную аннотацию и генерировать собственный прокси-объект в классе, аннотированный с помощью @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 это делает. Если кто-нибудь знает, как добавить дополнительные строки в метод во время компиляции, я был бы признателен.

Спасибо

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

Jesper 13.07.2018 16:00

@Jesper Сначала я попытался сгенерировать код с помощью com.sun.tools.javac.tree.TreeMaker. Сейчас я попробую АОП, но не знаю, если это то, что мне нужно. Спасибо, в любом случае

Yuriy Hladyuk 13.07.2018 19:36
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
222
0

Другие вопросы по теме