javascript
Spring Data MongoDB中的审核实体
Spring Data MongoDB 1.2.0靜默引入了新功能:支持基本審核 。 因為您不會在本文的官方參考中找到太多有關它的信息,所以我將展示它帶來的好處,如何配置Spring以進行審計以及如何對文檔進行注釋以使其可審計。 審核使您可以聲明性地告訴Spring存儲:
- 文檔創建的日期: @CreatedDate
- 上次文檔更新的日期: @LastModifiedDate
- 創建文檔的用戶: @CreatedBy
- 最近更新的用戶: @LastModifiedBy
- 當前文檔版本: @Version
組態
首先,Maven依賴于最新的Spring Data MongoDB和Spring Data Commons。 另外,為了使用與日期相關的審計注釋,我們需要在類路徑中添加joda-time 。
<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-mongodb</artifactId><version>1.2.1.RELEASE</version> </dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-commons</artifactId><version>1.5.1.RELEASE</version> </dependency><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.2</version> </dependency>為了啟用審計,我們需要在Spring配置中添加<mongo:auditing /> 。 當前無法通過Java Config對其進行配置。
<mongo:auditing /><mongo:mongo id="mongo" /><bean class="org.springframework.data.mongodb.core.MongoTemplate"><constructor-arg name="mongo" ref="mongo" /><constructor-arg name="databaseName" value="blog-tests" /> </bean>用法
上面的配置為我們提供了包括版本控制和時間戳在內的審計方法。 示例文檔如下所示:
@Document public class Item {@Idprivate String id;... @Versionprivate Long version;@CreatedDateprivate DateTime createdAt;@LastModifiedDateprivate DateTime lastModified;... }現在,您可以使用MongoTemplate或存儲庫保存文檔,并且所有帶注釋的字段均已自動設置。
您可能已經注意到,我在這里沒有使用用戶相關的注釋@CreatedBy和@LastModifiedBy 。 為了使用它們,我們需要告訴Spring誰是當前用戶。
首先,將與用戶相關的字段添加到審核的類中:
@CreatedBy private String createdBy;@LastModifiedBy private String lastModifiedBy;然后創建您的AuditorAware實現,該實現將獲取當前用戶(可能從會話或Spring Security上下文中獲取-取決于您的應用程序):
public class MyAppAuditor implements AuditorAware<String> {@Overridepublic String getCurrentAuditor() {// get your user name herereturn "John Doe";} }最后一件事是通過對Mongo配置進行少量修改來告訴Spring Data MongoDB有關此審計師的類:
<mongo:auditing auditor-aware-ref="auditor" /> <bean id="auditor" class="pl.maciejwalkowiak.blog.MyAppAuditor"/> 參考:來自JCG合作伙伴 Maciej Walkowiak的Spring Data MongoDB中的審計實體,來自Software Development Journey博客。翻譯自: https://www.javacodegeeks.com/2013/05/auditing-entities-in-spring-data-mongodb.html
總結
以上是生活随笔為你收集整理的Spring Data MongoDB中的审核实体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非居民是什么意思 什么是非居民
- 下一篇: 炒肺片的做法 炒肺片怎么做