Как смешать прокси CGLIB и JDK в конфигурационных файлах Spring?
Эта тема связана с проблемой, с которой я сталкиваюсьздесь о необходимости доступа к защищенным методам рекомендованного класса, Я использую Spring 3.0.6 и создал аспект профилирования Spring, который я применяю для значительного числа bean-компонентов, использующих прокси-серверы JDK.
Однако из-за необходимости доступа к защищенным методам в одном конкретном компоненте я бы посоветовал использовать CGLIB. Все остальные бины я хотел бы продолжать использовать JDK Proxies.
Я использую смесь аннотаций и конфигурации XML, но этот конкретный аспект определен в конфигурации XML.
Я знаю что есть<aop:scoped-proxy>
тег, но из того, что я могу сказать, это относится ко всем аспектам.
Есть ли способ определить для одного аспекта использование CGLIB вместо этого?
<aop:config>
<aop:aspect id="Profiler" ref="lendingSimulationServiceProfilerInterceptor">
<!-- info -->
<aop:around method="infoProfiler"
pointcut="execution(* com.cws.cs.lendingsimulationservice.service.LendingSimulationServiceImpl.calculate*(..))" />
<!-- debug -->
<aop:around method="infoProfiler"
pointcut="execution(* com.cws.cs.lendingsimulationservice.process.LendingSimulationProcessImpl.calculate(..))" />
<aop:around method="infoProfiler"
pointcut="execution(* com.blaze.BlazeEngine.invokeService(..))" />
<!-- trace -->
<aop:around method="traceProfiler"
pointcut="execution(* com.calculator.dao.impl.LendingSimulationDaoImpl.*(..))" />
<!-- NEED TO DEFINE THIS PARTICULAR ASPECT AS CGLIB -->
<aop:around method="traceProfiler"
pointcut="execution(* com.cws.cs.lendingsimulationservice.util.pool.JAXBPoolImpl.*(..))" />
</aop:aspect>
</aop:config>
Я пытался разделить конфигурацию на две части и указать для одной конфигурацииtarget-class="true"
и другиеtarget-class="false"
, но, кажется, применить CGLIB ко всем на этом этапе.
Есть ли способ сделать это?
Спасибо,
Эрик