"Triggers" Java [RESOLVIDO]

Pessoal, eu estou querendo logar o que acontece no meu sistema.
Uma vez eu vi algo assim na net:

  • Tu escreve uma classe/método que realiza um log
private void doLog() {
    User u = getCurrentUser();
    Log l = new Log(u);
    LogDAO.getInstance().persist(l);
}

Depois tu configura um framework, através de XML, e diz que quando tais métodos forem executados, ele deve executar o método “doLog”… como se fosse uma trigger… algo assim:

<trigger metodo="com.br.teste.Logger.doLog>
    <target metodo="com.br.teste.dao.UserDAO.create</target>
    <target metodo="com.br.teste.dao.UserDAO.delete</target>
    <target metodo="com.br.teste.dao.UserDAO.update</target>
</trigger>

Sendo assim, cada vez que o usuário logado criar, deletar ou alterar um User, o framework chamará o método doLog…
Tentei pesquisar isso no oráculo, mas não sei o nome disso… achava que era “programação orientada a aspecto”, mas não consigo achar o framework e o artigo que tinha visto daquela vez. Alguém já algo semelhante? Sabe o nome disso, ou de algum framework? Presta? =D

Valeu!

Tenta Log4j…
Acho que te ajuda, hein…

Voce consegue fazer coisa parecida com programcao orientada a aspecto. O spring AOP tem essa funcionalidade. http://static.springsource.org/spring/docs/2.0.x/reference/aop.html

Vc pode usar o aspectj
http://www.eclipse.org/aspectj/

Ou o spring tb.
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop.html

Além de outros.

Você pode usar tb, se estiver usando JPA, os tais Life Cycle Callback Listener Method
http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/cmp30cfg015.htm

Ah, então é AOP mesmo… vou dar uma olhada nesse AspectJ, vai ver foi esse que eu vi, pois o nome me é familiar.

Valeu pessoal!

[quote=fabiofalci]Você pode usar tb, se estiver usando JPA, os tais Life Cycle Callback Listener Method
http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/cmp30cfg015.htm[/quote]

Ah, boa! Não lembrava dos callbacks da JPA! Talvez seja uma solução perfeita para meu problema, ainda mais por não precisar incluir mais frameworks no meu projeto!

Valeu =D