Interceptar metodos de um Java Bean

2 respostas
hiltonbauer

Ola, Estou desenvolvendo um padrão para versionamento de atributos de um objeto, usando HIBERNATE, esta quase tudo ok, so preciso interceptar os metodos gettes e settes para atribuir as versoes corretas em um determinado instante.
Em pesquisas feitas no Google, descobri que com a CGLIB e possivel interceptar os metodos, mas não consegui enxergar como fazer isso ainda, se alguem puder me ajudar. Agradeço desde ja.

2 Respostas

Abdon

http://www.guj.com.br/java.tutorial.artigo.182.1.guj

Luca

Olá

A documentação da CGLIB é um pouco pior do que péssima. É preciso esmiuçar o código fonte, o que eu nem sempre tenho paciência. E por isto não sei usar o CGLIB.

Tem um monte de APIs e frameworks que usam a CGLIB:

  • Hibernate usa cglib para gerar proxies para classes persistentes.
  • Nanning Aspects (framework AOP)
  • Spring
  • iBATIS
  • ASM
    E outras

É mais fácil olhar o código de uma delas ao invés de vagar pelo código da CGLIB.

Por exemplo o Hibernate: criar um projeto no eclipse a partir do ant build.xml, fazer uma busca por cglib e xeretar as classes.

Fazendo isto, percebe-se que o Hibernate também usa alternativamente como bytecode provider um subprojeto do JBoss chamado javassist, que é definida como: Javassist is a class library for dealing with Java bytecode

Pelo pouco que olhei, parece que o Javassist, projeto do japonês Shigero Shiba, tem mais documentação. Tem até um exemplinho em http://www.csg.is.titech.ac.jp/~chiba/javassist/tutorial/tutorial.html

De qualquer forma, seja lá a opção que o atenda, você está intimado a voltar aqui e dizer qual API usou e principalmente dar uma dica de como usou. Combinado?

[]s
Luca

Criado 20 de outubro de 2006
Ultima resposta 20 de out. de 2006
Respostas 2
Participantes 3