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?
<code><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> </code>
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