스프링 데이터 1.5 및 감사를 사용하고 있습니다. AuditingEntityListener
의 부분은 setAuditingHandler
메소드를가집니다.감사를 사용할 때 스프링 데이터에 의해 삽입 된 AuditingHandler를 어떻게 커스터마이징 할 수 있습니까?
AuditingHandler
을 사용자 정의하고 Spring 데이터에 org.springframework.data.auditing.AuditingHandler
기본값 대신 사용자 정의 처리기를 삽입하도록 지시하려면 어떻게해야합니까?
내 자신의 Handler를 삽입하는 내 AuditingEntityListener
을 인스턴스화하려고 시도했지만 그 작업을 수행하지 않습니다. 기본 처리기가 여전히 주입 중입니다. XML 구성과 JavaConfig를 통해 둘 중 하나가 다른 것보다 잘 작동하는지 확인하려고했으나 어느 방법으로도 작동하지 않습니다.
JavaConfig :
@Configuration
@EnableJpaAuditing(auditorAwareRef="auditorProvider")
public class AppConfig {
@Bean
public AuditorAware<User> auditorProvider(){
return new SpringSecurityAuditorAware();
}
@Bean
public AuditingEntityListener auditingEntityListener(){
AuditingEntityListener listener = new AuditingEntityListener();
listener.setAuditingHandler(new com.ia.persistence.AuditingHandler());
return listener;
}
}
내 사용자 정의 핸들러 : 내가 잘못 뭐하는 거지
@Component
public class AuditingHandler extends org.springframework.data.auditing.AuditingHandler {
// SLF4J logger
private static final Logger logger = LoggerFactory.getLogger(AuditingHandler.class);
/* (non-Javadoc)
* @see org.springframework.data.auditing.AuditingHandler#markCreated(java.lang.Object)
*/
@Override
public void markCreated(Object source) {
logger.info("Custom handler");
super.markCreated(source);
}
/* (non-Javadoc)
* @see org.springframework.data.auditing.AuditingHandler#markModified(java.lang.Object)
*/
@Override
public void markModified(Object source) {
logger.info("Custom handler");
super.markModified(source);
}
}
? 내 JavaConfig에서는 Spring이 내 구성을 사용하여 리스너를 인스턴스화하는 것을 보지 못했습니다. 또는 XML 구성을 사용하여 수신기를 구성하려고 시도했지만 기본 수신기는 여전히 사용됩니다.
<!-- enable Spring data-JPA repositories -->
<jpa:repositories base-package="com.ia" />
<bean id="auditingEntityListener" class="org.springframework.data.jpa.domain.support.AuditingEntityListener">
<property name="auditingHandler" ref="auditingHandler"/>
</bean>
어떤 제안이 도움이 될 것입니다.
예를 넣어! – shazin
@shazin 추가 세부 사항을 제공해 주시겠습니까? 어디서/내 기본 처리기 대신 사용자 지정 처리기를 지정하는 방법을 알아낼 수 없습니다. –