2010-06-05 13 views
0

J'ai besoin d'une réponse rapide à une chose simple dans AOP.Comment fonctionne la compilation avec AOP?

Si j'ai un code déployé côté client et que j'ai écrit de nouveaux aspects, ce que je veux dans le logiciel côté client. dois-je "recompiler" le logiciel complet avec le code "original" et le nouveau code "AOP"? (avec compilateur aop)? Par exemple, ai-je besoin du code source du programme original avec le code source du nouvel AOP et les compile tous les deux?

P.S: Je demande en général, n'étant spécifique à aucune langue. Cependant, si la réponse doit être spécifique à une langue, disons Java et AspectJ comme cadre AOP.

+1

Votre question * doit être spécifique à une langue, étant donné que la réponse sera différente dans tous les cas. Parfois, l'AOP est à la compilation, parfois c'est l'exécution. – skaffman

+0

Juste en Java il y a différents compilateurs qui feront l'exécution aussi bien que la compilation. –

+0

ok va avec java et chose d'exécution. pourriez-vous me guider pour cela? Mon point d'intérêt principal est que j'ai déjà déployé le code côté client et je ne veux pas recompiler le code entier. Le déploiement d'un nouvel aspect pourrait-il intercepter du code déjà déployé? c'est-à-dire une sorte de hooks que je peux générer en utilisant VM ou quelque chose comme ça? –

Répondre

0

Vous voulez vérifier AspectJ LTW (tissage en temps de chargement).

P.S .: Je suppose que vos clients sont prêts à déployer votre code aspect (par exemple dans un fichier JAR séparé) et à démarrer la machine virtuelle Java d'une manière légèrement différente afin d'activer LTW. Alors la réponse est oui, c'est possible. AspectJ peut même recompiler vos fichiers de classe et faire un tissage d'aspect binaire sans avoir besoin du code source. De cette façon, vous pouvez remplacer le code client par une version aspect-tissé. De cette façon, la JVM pourrait être démarrée comme avant, seule la bibliothèque cliente en question doit être remplacée.