tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
714
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    xxxAnnaxxx xxxAnnaxxx ist offline Grünschnabel
    Registriert seit
    Nov 2010
    Beiträge
    3
    Hallo,

    ich arbeite mich gerade in das Thema Aspektorientierung ein. Die Theorie ist soweit klar, aber mein Projekt will einfach nicht laufen, weil ich den Pointcut nicht richtig implementiert bekomme.

    Mein Projekt besteht aus einer Klasse Mitarbeiter, einer ausführenden Klasse Mitarbeiterverwaltung und dem Aspekt. Der Aspekt soll jede Änderung die an einem Objekt Mitarbeiter vorgenommen wird Loggen.
    Vielleicht kann mir ja hier jemand helfen.

    Code:

    Mitarbeiter
    package de.eufh.wi09;

    public class Mitarbeiter {

    private String name;
    private String vorname;
    private int gehalt;
    private String abteilung;

    public Mitarbeiter(String n, String v, int g, String a) {
    this.name = n;
    this.vorname = v;
    this.gehalt = g;
    this.abteilung = a;
    }

    public void MitarbeiterGehaltErhoehen(int Erhoehung) {
    this.gehalt = gehalt + Erhoehung;
    }

    public void MitarbeiterAbteilungWechseln(String NeueAbteilung)
    {
    this.abteilung = NeueAbteilung;
    }

    }




    Mitarbeiterverwaltung

    package de.eufh.wi09;


    public class Mitarbeiterverwaltung {

    public static void main (String [] args)
    {

    // Instanziierung eines Objektes
    Mitarbeiter aKowollik = new Mitarbeiter ("Kowollik","Anna",200000,"CEO");

    // Anwendung der Methode GehaltErhoehen
    aKowollik.GehaltErhoehen(50000);

    // Anwendung der Methode AbteilungWechseln
    aKowollik.AbteilungWechseln("Process Management");
    }

    }





    package de.eufh.wi09;

    public aspect Logging {

    pointcut Log () : call (void GehaltErhoehen(..))
    && call (void AbteilungWechseln(..));


    before (): Log ()
    {
    System.out.println("Erstelle/ Bearbeite Text:");
    }

    after (): Log ()
    {
    System.out.println("Text wurde erstellt/ bearbeitet.");
    }
    }



    Der Aspekt spricht weder die richtigen Methoden an, noch Loggt er die Änderungen.
    Wie muss ich das implementieren?



    Viele Grüße,
    Anna
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    das was du da machen möchtest ist eine spezielle Form von logging -> tracing.

    Schau mal hier:
    http://www.tutorials.de/java/300525-...d-eclipse.html
    http://www.tutorials.de/java/254041-...rogrammes.html

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    xxxAnnaxxx xxxAnnaxxx ist offline Grünschnabel
    Registriert seit
    Nov 2010
    Beiträge
    3
    Hey,
    danke für die Antwort,
    leider funktionieren die Lösungen nicht so, wie sie sollen.
    Wie schaffe ich es den Konstruktor zu loggen oder eine Methode bei Änderungen zu loggen und den neuen Wert auszugeben****

    Könnt ihr mir da weiterhelfen?
     

Ähnliche Themen

  1. AspectJ und Eclipse
    Von xxsaikoxx im Forum Java
    Antworten: 3
    Letzter Beitrag: 15.11.10, 09:41
  2. maven-eclipse-plugin + AspectJ
    Von sebastianb im Forum Java
    Antworten: 2
    Letzter Beitrag: 29.10.10, 08:22
  3. AspectJ an internen Eclipse Klasse anwenden
    Von o19o im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 11.06.10, 15:29
  4. Antworten: 9
    Letzter Beitrag: 03.02.10, 16:26
  5. AspectJ PointcutDoctor für die Eclipse IDE
    Von Thomas Darimont im Forum Java
    Antworten: 1
    Letzter Beitrag: 31.01.09, 17:11

Stichworte