Exemplo enxuto utilizando abordagem de programação orientada a aspectos com Spring e AspectJ
Programação orientada a aspectos pode ser utilizada como complemento para programação orientada a objetos, segregrando aspectos de uma determinada funcionalidade, reduzindo o acomplamento e aumentando coesão das classes.