AOP x IoC para cache

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

Ninguém nunca precisou de um cache para a sua aplicação ?

Talvez não da forma que vc tá querendo saber(usando inversão de controle).Bom, minha última aplicação usando o Menta eu tinha um cache feito com um velho e bom HashMap, que deixava na memória dados que eram incessantemente acessados(coisa pequena, pode por 1MB de dados se tanto) em relatórios.A app funcionava que é uma beleza e os clientes ficaram super contentes.Essa simples abordagem, é a mesma que um amigo ajudou a fazer numa app com milhões de usuários(cadastro sincronizado nacional), onde ele deixava todos os municípios dentro desse cache para acesso rápido.