ServerAddress serverAddress = new ServerAddress(mongoHost, mongoPort); return new MongoClient(serverAddress, Arrays.asList(credential)); }
@Bean public MongoExceptionTranslator exceptionTranslator() { return new MongoExceptionTranslator(); }
@Bean public LoggingEventListener logginEventListener(){ return new LoggingEventListener(); }
}
EnableMongoAuditing를 쓰게되면?
auditing은 몽고디비뿐만 아니라 다른 디비를 쓸경우 audit을 지원한다. audit은 감시한다라는 뜻을 가지고 있으며 aop이다.
위를 쓰게 될경우 entity에 추가
1 2 3 4 5 6 7 8 9 10 11 12
@CreatedBy private String createBy;
@CreatedDate private Date createdAt;
@LastModifiedBy private String updatedBy;
@LastModifiedDate private Date updatedaAt;
auditor추가 (시큐리티)
1 2 3 4 5 6 7 8
@Component("activityAuditor") public class ActivityAuditor implements AuditorAware<String> {
@Override public String getCurrentAuditor() { return "server"; } }
위와같이 셋팅하게 될경우 디비에 생성 및 업데이트 시간을 어플리케이션 레이어에서 핸들링 하게 된다. 생성 또는 업데이트시 by -> server데이터 로우가 생기며 추후 운영시에 운영개발자가 직접 디비를 만졌는지 또는 서버에서 디비가 핸들링되었는지 알수 있는 장점을 가지고 있다.