Ik ben nu al enige tijd aan proberen, maar krijg het niet geklaard. Ik zou geen discussie willen opstaren omtrent de opzet van mijn probleem, maar ik zou een oplossingen moeten vinden hiervoor.
Ik heb een Class TestPerson
Deze TestPerson klasse is een entity domainobject die aangemaakt wordt door hibernate. Nu zou ik willen een around advice schrijven op de getClient() methode van TestPerson. Volgende code heb ik in de applicationContext staan:
en natuurlijk de RetrieveClientExecutor ook
Op bovenstaande manier was ik eerst bezig, maar daar zag ik iets over het hoofd, de TestPerson klasse is nu een door hibernate "enhanced" klasse geworden, dus ik denk dat Spring er hier niet aankan. Ik heb dan gekeken in de handleiding en heb er een stuk gevonden over "Using AspectJ to dependency inject domain objects with Spring" maar daarin maken ze gebruik van Annotations. Aangezien we voor dit project geen annotations gebruiken vroeg ik me af of het wat ik wel wil opzetten enigsinds mogelijk is zonder gebruik van annotations?
Ik heb een Class TestPerson
Java:
1
2
3
4
5
6
7
| public Class TestPerson { private Client client; public Client getClient() { return this.client; } ... |
Deze TestPerson klasse is een entity domainobject die aangemaakt wordt door hibernate. Nu zou ik willen een around advice schrijven op de getClient() methode van TestPerson. Volgende code heb ik in de applicationContext staan:
code:
1
2
3
4
5
6
7
8
9
| <bean id="retrieveClientExecutorBean" class="be.oz.ozfit.vo.aop.RetrieveClientExecutor">
<aop:aspect id="retrieveClient" ref="retrieveClientExecutorBean">
<aop:pointcut id="retrieveClientMethod" expression="execution(public * be.xxx.TestPerson.getClient(..))"/>
<aop:around
pointcut-ref="retrieveClientMethod"
method="retrieveClientOperation"/>
</aop:aspect> |
en natuurlijk de RetrieveClientExecutor ook
Java:
1
2
3
4
5
6
7
8
9
10
| public class RetrieveClientExecutor { public Object retrieveClientOperation(ProceedingJoinPoint pjp) throws Throwable { System.err.println("voor getClient operation"); Object value= pjp.proceed(); System.err.println("na getClient opeartion"); return value; } } |
Op bovenstaande manier was ik eerst bezig, maar daar zag ik iets over het hoofd, de TestPerson klasse is nu een door hibernate "enhanced" klasse geworden, dus ik denk dat Spring er hier niet aankan. Ik heb dan gekeken in de handleiding en heb er een stuk gevonden over "Using AspectJ to dependency inject domain objects with Spring" maar daarin maken ze gebruik van Annotations. Aangezien we voor dit project geen annotations gebruiken vroeg ik me af of het wat ik wel wil opzetten enigsinds mogelijk is zonder gebruik van annotations?
"Live as if you were to die tomorrow. Learn as if you were to live forever"