최대 절전 모드의 버전에 따라 세밀한 감사 로깅을 수용 할 수 Envers을 사용할 수 있습니다. 이것은 주어진 개정에 세션 변수에서 '현재 사용자'를 추가 할 수있는 기능이 포함되어
@Entity
@RevisionEntity(ExampleListener.class)
public class ExampleRevEntity extends DefaultRevisionEntity {
private String username;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
}
이 잘 당신과 같이 봄에서 호출 할 수있는 이벤트 리스너의 시리즈를 통해 최대 절전 모드와 통합 :
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
...
<property name="eventListeners">
<map>
<entry key="post-insert" value-ref="enversEventListener"/>
<entry key="post-update" value-ref="enversEventListener"/>
<entry key="post-delete" value-ref="enversEventListener"/>
<entry key="pre-collection-update" value-ref="enversEventListener"/>
<entry key="pre-collection-remove" value-ref="enversEventListener"/>
<entry key="post-collection-recreate" value-ref="enversEventListener"/>
</map>
</property>
</bean>
그럼 당신은 Envers 쿼리 API를 통해 감사의 개정에 대해 조회 할 수 있습니다. 최대 절전 모드를 사용하는 경우
최근 몇개의 프로젝트에 사용 후, 내 선호하는 감사 기법입니다. 한 사용자가 설치 그대로
applicationContext.getBean("currentUser", User.class);
:
귀하의 질문에 대답하기 위해, 당신은 그 설정은 최대 절전 모드 요격 또는 Envers RevisionListener 현재 Spring 컨텍스트에서 그것을 찾는하여 '현재 사용자'에 액세스 할 수 있습니다 봄에 범위가 지정된 콩으로
내가 Envers에보고 된 감사 – Kossel