Annotation + Proxy

0 respostas
M

Boa tarde, galera.

Preciso de ajuda pra resolver um problema.

O que quero: Estou tentando criar uma annotation para ser usada em métodos que, ao ser chamada, executa o método dentro de algum tipo de padrão desejado. (Vou dar um exemplo logo mais).

O que tenho hoje: Uma interface com os métodos que poderão receber a annotation. Uso um proxy e quando os métodos são chamados, o método invoke do meu InvocationHandler analisa se o método da instancia do objeto possui ou não a annotation. Caso exista, executa o método com as regras de negócios associadas, caso contrário simplesmente invoca o método do objeto.

Bom, funciona perfeitamente.

Problema: eu tenho que ter uma interface definida com todos os métodos que terei na classe, caso queira que funcione, pois o proxy é instanciado pela interface. Sendo assim, tenho 2 saidas a primeira seria criar TODOS os métodos que preciso em uma interface e fazer com que todas as classes que usarei a annotation implementem todos estes métodos (mesmo que não os utilize). Bom, esta está fora de cogitação… A segunda é criar uma interface pra cada método incomum nas interfaces.

Ambas não resolvem meu problema.
Preciso colocar a annotation e, independente do método ser uma implementação do método de uma interface ou não, ela precisa ser executada seguindo minhas regras.

Minha ideia é criar algumas annotations úteis para o desenvolvimento tais como Log, Thread entre outras. Desta forma, o método com a annotation Log, por exemplo, faria algum log; A annotation Thread, executaria o método asincronamente.

Na verdade, minhas idéias são outras, mas preciso entender e fazer isto funcionar, senão não consigo sair deste passo.

Desde já, agradeço qualquer colaboração.

Att,

Lucas Israel

Criado 27 de março de 2011
Respostas 0
Participantes 1