“JPA Auditing”
- Audit: “감시하다”
- 엔티티가 저장 또는 수정될 때, 생성일자, 수정일자, 생성자, 수정자 변경 시 자동으로 값을 넣어주도록 설정
- @EnableJpaAuditing: JPA Auditing 기능을 사용하기 위한 어노테이션
“AuditorAwareImpl”
package com.app.global.config.jpa;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.AuditorAware;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.Optional;
public class AuditorAwareImpl implements AuditorAware<String> {
@Autowired
private HttpServletRequest httpServletRequest;
@Override
public Optional<String> getCurrentAuditor() {
String modifiedBy = httpServletRequest.getRequestURI();
if (!StringUtils.hasText(modifiedBy)){
modifiedBy = "unknown";
}
return Optional.of(modifiedBy);
}
}
“JpaConfig”
package com.app.global.config.jpa;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.AuditorAware;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@Configuration
@EnableJpaAuditing
public class JpaConfig {
@Bean
public AuditorAware<String> auditorAware(){
return new AuditorAwareImpl();
}
}