Exercício 2
- Usando o mesmo projeto criado no exercício anterior vamos definir um exemplo
que usa uma hierarquia de aspectos, favorecendo o reuso de aspectos.
- crie o aspecto abstrato AbstractLogging
e defina no mesmo:
- um pointcut abstrato loggedMethods
- dois advice que imprimem o valor da variável thisJoinPoint
(contem informação sobre o join point corrente) antes e
depois do pointcut loggedMethods
- note que este aspecto define apenas qual o comportamento associado
a logar join points, sem defini-los, o que deverá ser feito
por um subaspecto
- crie agora o aspecto BancoLogging
que herda de AbstractLogging e define
o pointcut loggedMethods
identificando chamadas a métodos de classes dos pacotes contas,
fachada, e gui.
- note que este aspecto apenas define que join points devem
ser logados
- com essa estrutura podemos definir outros subaspectos
abstratos de AbstractLogging para
logar outros join points de outro sistema.
- Para verificar de maneira mais fácil que classes um aspecto
afeta selecione o mesmo, vá na janela Cross References e clique nos símbolos + de modo a verificar que
métodos de que classes o aspecto afeta.
- Note que o caminho contrário também pode ser feito, caso selecionemos
uma classe e na janela Cross References cliquemos no + para descobrir que aspecto
afeta que métodos da classe.