/**
* Classe exemplo para demonstrar o uso de pontos de junção;
*
* @author cassioso
*
* @encoding UTF-8
*
*/
public class Mensagem {
public void exibirMensagem() {
System.out.println("Olá mundo porreta!");
}
public void exibirMensagem(String s) {
System.out.println(s);
}
public static void main(String[] args) {
Mensagem m = new Mensagem();
m.exibirMensagem();
m.exibirMensagem("Isso é bão demais da conta...");
}
}
a execução desta por si só gera a saída:
Olá mundo porreta!
Isso é bão demais da conta...
E com a adição deste Aspecto:
package olaMundo;
/**
* Utilizando pontos de junção para métodos antes e depois da chamada
*
* @author cassioso
*
*/
public aspect AspectoMensagem {
pointcut callExibirMensagem():call(public void
Mensagem.exibirMensagem(..));
before():callExibirMensagem(){
System.out.println("A N T E S de exibirMensagem");
}
after():callExibirMensagem(){
System.out.println("D E P O I S de chamar exibirMensagem");
}
}
Gera a seguinte saída:
A N T E S de exibirMensagem
Olá mundo porreta!
D E P O I S de chamar exibirMensagem
A N T E S de exibirMensagem
Isso é bão demais da conta...
D E P O I S de chamar exibirMensagem
Na seção de arquivos tem um aspecto mais completo, utilizando pontos
de junção para métodos e pontos de atuação antes e depois da execução,
chamada e criação nova instância.
Um arquivo zipado. Deve ser adicionado como pacote dentro do projeto.