/ / Comment envelopper l'invocation de méthode dans bundle? - java, journalisation, osgi, bundle, aop

Comment envelopper invocation de méthode dans bundle? - java, journalisation, osgi, bundle, aop

J'ai l'application CQ5.

nous avons une hiérarchie de classes suivante (pseudocode):

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(){...}
}

Et je dois me connecter avant et après httprequest (pour mesurer le temps).

Mais il est très triste de changer de code dans chaque service.

Pouvez-vous fournir une décision plus gracieuse?

Volonté OSGI travailler avec Aspectj?

Qu'en est-il de @AspectService ?

Réponses:

0 pour la réponse № 1

Si vous suivez strictement les Principe SOC vous devez créer une classe distincte pour la requête HTTP:

public class HTTPRequest {
public void doRequest() { ... } // change signature according to your needs
}

Une instance de cette classe doit maintenant être utilisée dans vos méthodes de service.

Avec cette conception, il est très facile de définir un comportement de journalisation. Il suffit de changer le doRequest méthode.