No, to se tak nadefinuje nějaký cutpoint - k nejake metode se pridari jina metoda a rekne se, ze ta jina metoda (aspekt) se zavola pred nebo po vykonani te hlavni metody (nebo se misto toho zavola ta jina metoda, ktera zevnitr zavola tu puvodni :)). Je potreba na to mit vhodny prekladac, pokud jde o vlastni kod, nebo pomoci -javaagent pridat nejaky dynamic waver, ktery bude schopny odchytnout i tridy v knihovnach tretich stran za behu).

Priklad z knihy AspectJ

1. Mam tridu
public class MessageCommunicator {
    public void deliver(String message) {
        System.out.println(message);
    }
    public void deliver(String person, String message) {
        System.out.println(person + ", " + message);
    }
}

2. Nadefinuju aspekt (Authenticator je trida schopna autentizovat uzivatele):
@Aspect
public class SecurityAspect {
    private Authenticator authenticator = new Authenticator();

    @Pointcut("execution(* MessageCommunicator.deliver(..))")
    public void secureAccess() {
    }

    @Before("secureAccess()")
    public void secure() {
        System.out.println("Checking and authenticating user");
        authenticator.authenticate();
    }
}

3. V meta inf je potreba mit aop.xml s obsehem
<aspectj>
<aspects>
<aspect name="SecurityAspect"/>
</aspects>
</aspectj>

4. Main pak klasicky vola
public class Main {
    public static void main(String[] args) {
MessageCommunicator messageCommunicator = new MessageCommunicator();
        messageCommunicator.deliver("Wanna learn AspectJ?");
        messageCommunicator.deliver("Harry", "having fun?");
    }
}

5. Spustit nutno s parametrem
-javaagent:aspectjweaver-1.6.5.jar


Kniha je  tu http://www.manning.com/laddad2/
zdrojaky jsou tam ke stazeni, tohle je konkretne z ch02\workspace\Section2.4.3LoadTimeWeaving

M.

On 21.9.2011 15:04, Libor Jelinek wrote:
Můžete to s těmi aspektovými frameworky a weak a phantonovými nápady
rozvést? To se přiznám, že už je na mě příliš.... Ohledně referencí
vím, že existují 4 typy referencí, ale aspektové programování slyším
poprvé....

Libor

Dne 21. září 2011 14:50 Michal Eibl<[email protected]>  napsal(a):
Nešel by použít nějaký aspektový framework? AspectJ, SpringAOP...


On 21.9.2011 14:30, Libor Jelinek wrote:
Bohužel ta smutnější varianta je má situace. Jedná se o cizí třídu.
finalize() přidat nemohu. Nicméně jsem zjistil, že nástroj JProfiler
to dovede vypsat, ale stojí téměř 500 EUR, takže taky nic...

I tak díky
Libor

Dne 21. září 2011 13:20 Pecinovský Rudolf<[email protected]>
  napsal(a):
existuje nějaký způsob jak zjistit jméno třídy objektu, které bylo
"garbage
collected" Javou?
Je možné definovat pro třídu, resp. její instance, metodu finalize(),
která kamsi cosi zapíše. Nicméně to je možné pouze pro třídy, jejichž
definice můžeš ovlivnit. Informace o rušení instancí tříd ze standardní
knihovny takto nezískáš.



--
===============================
Ing. Michal Eibl
Budyně nad Ohří - Písty 50
413 01 Roudnice nad Labem
Czech Republic
--------------------------
gms: (+420) 777-290-418
e-mail: [email protected]
icq: #68436986
skype: michal.eibl
web:
  facebook.com/michal.eibl
  cz.linkedin.com/in/michaleibl
===============================

Odpovedet emailem