Você prefere o approach limpo de usar AOP para a camada de cache em cima dos seus métodos (DAO e Service) OU você prefere o controle total do approach via IoC, ou seja, injetando uma instância do cache onde ela for necessária?
Eu entendo que AOP te dá baixo acoplamento e separação de responsabilidades, mas não muita flexibilidade, a não ser que você esteja codificando os seus próprios interceptadores de métodos.
Eu costumo preferir o approach via IoC, porque a instancia do cache pode ser facilmente mockeada caso necessário (para testes por exemplo) e com uma instancia injetada você tem controle e flexbilidade total de como vc quer fazer o cache?
É como logging. Quem usa AOP para logging na aplicação inteira?
O que vc prefere? AOP ou IoC para cache?
Fonte: http://stackoverflow.com/questions/3843498/aop-x-ioc-for-caching