AspectJ

AspectJ

informație
Dezvoltat de Fundația Eclipse
Prima versiune 2001
Ultima versiune 1.9.2 (23 octombrie 2018)
Versiune avansată 1.9.3RC1 (7 martie 2019)
Depozit git: //git.eclipse.org/gitroot/aspectj/org.aspectj.git și git.eclipse.org/r/aspectj/org.aspectj
Scris in Java
Sistem de operare Multiplatform
Tip Limbaj de programare
Licență Licență Eclipse
Site-ul web www.eclipse.org/aspectj

AspectJ este o extensie orientată pe aspect , creată la Xerox PARC , pentru limbajul de programare Java . Această extensie este disponibilă în proiecte open source Eclipse , de sine stătătoare sau ca extensie pentru mediul de dezvoltare Eclipse . AspectJ a devenit standard, datorită utilizării sale pe scară largă, pentru programarea orientată pe aspect, cu accent pe simplitate și ușurință în implementare pentru utilizatorii finali. AspectJ se bazează pe sintaxa limbajului Java și se integrează cu IDE-urile pentru a-și afișa structura transversală de la prima sa publicare în 2001.

Țesutul aspectelor se realizează pe clasele compilate. Această țesere poate fi stabilită atunci când codul sursă este compilat sau în timpul rulării, când clasele sunt încărcate de mașina virtuală.

Limbaj simplu de descriere

Orice program Java este compatibil cu AspectJ. Totuși, AspectJ permite, de asemenea, programatorilor să definească construcții speciale numite „aspecte” . „Aspecte” pot conține mai multe entități care nu pot fi utilizate de clasele standard. Găsim :

aspect VisitAspect { void Point.acceptVisitor(Visitor v) { v.visit(this); } }
  • „ Pointcut ” - nu este tradus prin convenție; s-ar putea traduce în „Punct de cratimare” - permite programatorului să specifice „ Puncte de asociere ” - nedreptate prin convenție; ar putea fi tradus ca „Punct de joncțiune” - (definit în momente cheie în execuția unui program, cum ar fi apelarea unei metode, instanțierea unui obiect sau accesarea unei variabile). Orice „punct” este o expresie care verifică corespondența unui „punct de îmbinare”.

De exemplu, această „punctare” se potrivește cu executarea oricărei metode a unei instanțe a unui obiect de tip Pointal cărui nume începe cu set :

pointcut set() : execution(* set*(..) ) && this(Point);
  • „ Sfat ” - nu este tradus prin convenție; s-ar putea traduce în „Plugin” - permite programatorului să specifice codul care urmează să fie executat la „ Punctul de unire” care îndeplinește condiția unei „ puncte ”. Acțiunile pot fi efectuate înainte , după sau în jurul „ punctului de unire ” specificat. Aici, „sfaturi“ împrospătează display de fiecare dată ceva în obiectul Pointeste set, datorită „pointcut“ definit mai devreme:
after () : set() { Display.update(); }

AspectJ acceptă, de asemenea, forme statice limitate de verificare pe bază de puncte (moștenire) și reutilizare a aspectelor.

Vezi si

Referințe

  1. "  https://git.eclipse.org/c/aspectj/org.aspectj.git/refs/  " (Accesat la 6 septembrie 2019 )
  2. http://www.eclipse.org/aspectj/doc/next/devguide/ltw.html