Ho un'applicazione cq5.
abbiamo una seguente gerarchia di classi (pseudocodice):
class serviceA{
methodA1(){...}
methodA2(){...}
methodA3(){
...
httprequest
...
}
methodA4(){...}
}
class serviceB{
methodB1(){
...
httprequest
...
httprequest
...
httprequest
}
methodB2(){...}
methodB3(){...}
methodB4(){
...
httprequest
...
}
}
class serviceC{
methodC1(){
...
httprequest
...
httprequest
...
}
methodC2(){...}
methodC3(){
...
httprequest
....
}
methodC4(){...}
}
E ho bisogno di accedere prima e dopo httprequest (per misurare il tempo).
Ma è molto triste cambiare il codice all'interno di ogni servizio.
Potete fornire una decisione più aggraziata?
Volere OSGI
lavorare con Aspectj
?
Che dire @AspectService
?
risposte:
0 per risposta № 1Se segui rigorosamente il Principio SOC devi creare una classe separata per la richiesta HTTP:
public class HTTPRequest {
public void doRequest() { ... } // change signature according to your needs
}
Un'istanza di questa classe ora deve essere utilizzata nei tuoi metodi di servizio.
Con questo progetto, è molto facile posizionare il comportamento di registrazione. Basta cambiare il doRequest
metodo.