Jak mieszać serwery proxy CGLIB i JDK w plikach konfiguracyjnych Spring?
Ten wątek jest związany z problemem, z którym się spotykamtutaj w odniesieniu do potrzeb dostępu do chronionych metod zalecanej klasy. Używam Spring 3.0.6 i stworzyłem aspekt profilowania Springa, który stosuję do znacznej liczby fasoli przy użyciu serwerów proxy JDK.
Jednak ze względu na konieczność uzyskania dostępu do metod chronionych w jednym konkretnym komponencie bean, chciałbym doradzić mu użycie CGLIB. Wszystkie inne fasole, które chciałbym nadal używać JDK Proxies.
Używam mieszanki adnotacji i konfiguracji xml, ale ten szczególny aspekt jest zdefiniowany w konfiguracji XML.
Wiem, że jest<aop:scoped-proxy>
tag, ale z tego co mogę powiedzieć, dotyczy to wszystkich aspektów.
Czy mimo to dla pojedynczego aspektu należy zdefiniować użycie 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>
Próbowałem podzielić konfigurację na dwie części i dla jednej konfiguracji określićtarget-class="true"
i innitarget-class="false"
, ale wydaje się, że stosuje CGLIB do wszystkich w tym momencie.
Czy jest jakiś sposób, aby to osiągnąć?
Dzięki,
Eric