Ответ 1
Установив proxy-target-class="true"
, вы будете использовать CGLIB2
для своих прокси, вместо jdk proxys.
Последствия следующие, как описано в документации:
окончательные методы не могут быть рекомендованы, поскольку их нельзя переоценить.
Вам понадобятся бинарные файлы CGLIB 2 в вашем пути к классам, тогда как динамические прокси доступны в JDK. Spring будет автоматически предупреждать вас, когда ему нужны CGLIB, а классы библиотеки CGLIB не являются найденный на пути к классам.
Конструктор вашего прокси-объекта будет вызываться дважды. Это является естественным следствием прокси-модели CGLIB, в соответствии с которой подкласс генерируется для каждого проксируемого объекта. Для каждого проксированного экземпляра два создаются объекты: фактический прокси-объект и экземпляр подкласс, который реализует совет. Такое поведение не проявляется при использовании прокси-серверов JDK. Обычно вызов конструктора прокси-тип дважды, это не проблема, так как обычно есть назначений, и реальная логика не реализована в конструктор.
Кроме того, вы должны иметь возможность сделать "целевой-прокси" для определенного компонента с помощью
proxyMode=ScopedProxyMode.TARGET_CLASS