Есть ли способ выполнить (более или менее) «автоматическую» проверку Java bean-функции JSR-303 без изменения времени выполнения класса?Автоматическая проверка бина Java JSR-303 без кодирования байтового кода
Обычно я вижу людей, использующих AspectJ, чтобы выполнить это, но у нас было так много осложнений при использовании плей-кода во время выполнения (например, с cofoja), что я бы хотел его избежать. Это приводит к сбою многих наших инструментов сборки, потому что файлы классов времени выполнения отличаются от файлов классов на диске.
Я просмотрел dynamic proxies через отражение, которое может содержать только прокси-интерфейсы (общедоступные методы) И если вы вызываете что-либо, записанное внутри «этого», вы больше не пропускаете прокси-сервер, поэтому вы теряете эту проверку.
Я также посмотрел на ByteBuddy, чтобы получить возможность перехватывать вызовы метода путем переноса/переопределения класса. Здесь может быть что-то, но я не могу понять, как перехватить частные методы или выполнить вышеизложенное, не возвращаясь к модификации исходного класса.
Любые идеи?
Я считаю, что Spring может использовать CGLib, но я не знаком с внутренностями его маршрутизации '@ Valid'. – chrylis