"Que ninguém se engane: só se consegue a simplicidade através de muito trabalho." - Clarice Lispector
Curso Struts 2
Ementa do Curso
Padrão Command - Apostila
Aula 01
Aula 02
Sobre Spring
Aula 03
Aula 04
publishedJun 09, 2008 | 6879 comments
Injetando Interceptador do Hibernate no Spring
O Hibernate tem Interceptadores e Eventos que facilitam a implementação de mecanismos de log. Para integrar com o Spring precisamos realizar os seguintes passos: Primeiro vamos criar o Interceptador:
public class HibernateInterceptor extends EmptyInterceptor {
// Posso ter algum usuario e suas preferencias
private Usuario usuario;
// Posso ter a sessao para realizar alguma operacao
private SessionFactory sessionFactory;
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public void onDelete(Object entity
Serializable id
Object[] state
String[] propertyNames
Type[] types) {
registrarLog();
}
public boolean onSave(Object entity
Serializable id
Object[] state
String[] propertyNames
Type[] types) {
registrarLog();
return false;
}
private void registrarLog() {
System.out.println("Registrando LOG.");
}
}
E em seguida configuramos o interceptador no application-context.xml
<!-- Bean para armazenar os dados do usuario logado -->
<bean id="usuario" class="Usuario" scope="session" method="init">
<aop:scoped-proxy>
</aop:scoped-proxy>
<!-- Interceptor do Hibernate -->
<bean id="hibernateInterceptor" class="HibernateInterceptor">
<property name="sessionFactory" ref="sessionFactory">
<property name="usuario" ref="usuario">
</property>
<!-- Configuracao do TransactionManager-->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
<property name="entityInterceptor" ref="hibernateInterceptor">
</property>
Note que o interceptador criado não será declarado no hibernate.cfg.xml, somente injetado no TransactionManager pela propriedade "entityInterceptor".
publishedOct 10, 2007 | 5682 comments