توفر بيانات الربيع الدعم للتدقيق: أي عند إنشاء الكيان أو تعديله. توفر بيانات Spring إضافة @createdby ، @lastmodifiedby ، createddate ، @lastmodifiedDate إلى خصائص فئة الكيان وتكوين عناصر التكوين المقابلة لتحقيق وظيفة التدقيق. يسجل النظام تلقائيًا قيم الخصائص الأربعة لـ CreateByBydate LastModifiedBy LastModifiedDate. فيما يلي عناصر التكوين المحددة.
مثال
إنشاء فئة كيان
package com.hfcsbc.infructurevicevice.domain ؛ استيراد com.hfcsbc.repository.support.domain.abstractauditingentity ؛ import lombok.data ؛ استيراد org.springframework.data.annotation. org.springframework.data.annotation.lastmodifiedby ؛ استيراد org.springframework.data.annotation.lastmodifiedDate ؛ import org.springframework.data.jpa.domain.support.auditingentItender ؛ Pengchao في 2018/3/7 */@intity@data@entityListeners ({AuditingEntityListener.Class}) Public Class Person {idgeneratedValue private long id ؛ اسم السلسلة الخاصة ؛ عصر عدد صحيح خاص ؛ createdbycolumn (name = "create_by" ، nullable = false ، length = 50 ، update = false) string private createdby ؛ createdDatecolumn (name = "create_date" ، nullable = false ، update = false) تاريخ خاص تم إنشاءه = تاريخ جديد () ؛ lastModifiedBycolumn (name = "last_modified_by" ، طول = 50) سلسلة خاصة lastModifiedBy ؛ @lastmodifiedDateColumn (name = "last_modified_date") تاريخ خاص lastModifiedDate = New Date () ؛}إنشاء المستودع المقابل
package com.hfcsbc.repository ؛ import com.hfcsbc.domain.person ؛ import org.springframework.data.jpa.repository.jparepository ؛/** * create by Pengchao في 2018/3/7 */واجهة عامة personrepository يمتد JParepositor
تكوين الفاصوليا للحصول على معلومات المستخدم
package com.hfcsbc.infructurevice.config ؛ استيراد org.springframework.data.domain.auditoraware ؛ استيراد org.springframework.security.core.Authentication ؛ استيراد org.springframework.security.core.core.core org.springframework.stereotype.component ؛ import java.util.optional ؛/** * إنشاء من قبل Pengchao في 2018/3/7 */ @component ("Auditoraware") Public Class AuditorAwareimpl تنفذ Auditorawar SecurityContextholder.getContext (). getAuthentication () ؛ إرجاع الاختياري. }}قم بتشغيل وظيفة التدقيق في فئة إدخال التمهيد الربيع
package com.hfcsbc.infructurevice ؛ استيراد org.springframework.boot.springapplication ؛ استيراد org.springframework.boot.autoconfigure.springbootapplication ؛ استيراد org.springframework.data.jpa.repository.en-enable org.springframework.scheduling.annotation.enableAsync ؛@springbootapplication@enablejpaauditing (outitorawareref = "outitoraware")@enableAsyncpublic personapplication {public static void main (string) {Springapplication.Run ( }}وهذا هو ، تم الانتهاء من التكوين. عند حفظ الكائنات باستخدام المستودع ، تم إنشاء CreatedBydate LastModifiedBy LastModifiedDate وظيفة التدقيق لإدراجها تلقائيًا.
ملاحظة: كيفية الحصول على معلومات المستخدم بطريقة غير متزامنة
نظرًا لأنك تستخدم مستودعًا لحفظ الكائنات بطريقة غير متزامنة ، لا يمكنك الحصول على معلومات المستخدم. تحتاج إلى إضافة عناصر التكوين التالية للحصول على معلومات المستخدم في المصادقة
حزمة com.hfcsbc.config ؛ استيراد org.springframework.beans.factory.config.methodinvokingfactorybean ؛ استيراد org.springframework.context.annotation.bean org.springframework.security.core.context.securityContexthOlder ؛/** * إنشاء من قبل Pengchao في 2018/3/7 */ @configurationpublic class AuditorAwAreconfig {methodInvActoRokeBeannVaNKBeannVAKINGBANKBANKBANKBANKBANKBEANFAKINGFAKINGFAKINGFAKINGFAKINGBEANBEANBEANBEANBEANBEANBEANBEAN methodInvokingFactoryBean () ؛ MethodInvokingFactoryBean.SetTargetClass (SecurityContextholder.class) ؛ MethodInvokingFactoryBean.SetTargetMethod ("setStrategyName") ؛ MethodInvokingFactoryBean.setArguments (سلسلة جديدة [] {securityContexTholder.mode_inheritablethreadlocal}) ؛ إرجاع MethodInvokingFactorybean ؛ }}تتمثل الوظيفة الرئيسية لـ SecurityContextholder في ربط العملية التي تم تنفيذها حاليًا باستخدام SecurityContext.
SecurityContextholder.mode_inheritableTableThreadLocal: المستخدمة في الحالة التي يكون فيها مؤشرات الترابط علاقات بين الوالدين والطفل ، يدمج مؤشر ترابط الطفل SecurityContextholder من مؤشر ترابط الأصل ؛
SecurityContextholder.mode_inheritablethreadlocal: مشاركة عالميا SecurityContextholder.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.