1 Ağustos 2018 Çarşamba

SpringData @EnableJpaAuditing Anotasyonu - Envers İçindir

Giriş
Envers kullanmak için iki tane anotasyonu belirmek lazım
1. @EnableJpaAuditing
2. @EnableJpaRepositories
3. @Audited

Daha detaylı bilgi için Envers Kullanımı yazısına bakabilirsiniz

Bu anotasyonları ayrı bir @Configuration sınıfına taşımak daha iyi. Şöyle yaparız.
@Configuration
@EnableJpaAuditing
@EnableJpaRepositories(repositoryFactoryBeanClass =
  EnversRevisionRepositoryFactoryBean.class)
public class JpaEnversConfiguration {}
auditorAwareRef Alanı
Eğer kullanıcı ismini dönen bean'i kendimiz kodlamak istersek bu alanda bu bean'i belirtmek gerekir.
Örnek
Şöyle yaparız.
@Configuration
@EnableJpaAuditing(auditorAwareRef = "auditorAware")
@EnableAspectJAutoProxy(proxyTargetClass = true)
@EnableTransactionManagement
public class PersistenceContext {
  @Bean
  public AuditorAware<AccountModel> auditorAware() {
    return new AuditorAwareImpl();
  }
}
Bean için şöyle yaparız.
public class AuditorAwareImpl implements AuditorAware<AccountModel> {
  @Override
  public Optional<AccountModel> getCurrentAuditor() {
    return Optional.ofNullable((AccountModel)
      SecurityContextHolder.getContext().getAuthentication().getPrincipal());
  }
}

Hiç yorum yok:

Yorum Gönder