يمكن إجراء إدارة المعاملات في Spring Boot باستخدام التعليق التوضيحيTransactional. في منشور المدونة هذا، سنستكشف كيفية استخدام @Transactional لضمان اتساق البيانات وتبسيط معالجة الأخطاء في تطبيقات التشغيل الربيعي.
لاستخدام @Transactional، عادةً ما تضعه على أساليب فئة الخدمة حيث تريد سلوك المعاملات.
import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class UserService{ @Transactional public void createUser() { // enter your transactional code here } }
يمكنك تحديد مستويات الانتشار والعزل للمعاملة للتحكم في كيفية تصرف المعاملة:
النشر: يحدد كيفية تصرف المعاملة عندما تكون المعاملة الحالية قيد التشغيل بالفعل.
العزل: يحدد مستوى رؤية البيانات للمعاملة.
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED) public void createUser() { // enter your transactional code here }
يمكنك تحديد الاستثناءات التي يجب أن تؤدي إلى التراجع:
@Transactional(rollbackFor = Exception.class) public void createUser() { // your transactional code here }
إذا كانت طريقتك تقرأ البيانات فقط ولا تنفذ أي عمليات كتابة، فيمكنك وضع علامة عليها للقراءة فقط لتحسين الأداء:
@Transactional(readOnly = true) public void getUser() { // your read-only code here }
يمكنك أيضًا وضع @Transactional على مستوى الفصل لتطبيقه على جميع الأساليب في الفصل:
@Service @Transactional public class UserService { public void getUser() { // transactional code } public void createUser() { // transactional code } }
import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class UserService { @Transactional public void saveUser() { // code to save data } @Transactional(readOnly = true) public void fetchUser() { // code to fetch data } @Transactional(propagation = Propagation.REQUIRES_NEW) public void newTransaction() { // code to execute in a new transaction } @Transactional(rollbackFor = {CustomException.class}) public void performWithRollback() { // risky code that may throw CustomException } }
يسمح لك استخدام @Transactional Spring Boot بإدارة المعاملات بشكل تصريحي، مع تحديد بالضبط كيف تريد أن تتصرف المعاملات في سيناريوهات مختلفة. ويساعد ذلك على ضمان اتساق البيانات وتبسيط معالجة الأخطاء في تطبيقاتك.
https://www.baeldung.com/spring-transactions-read-only
https://docs.spring.io/spring-framework/reference/data-access/transaction/declarative/annotations.html
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/annotation/Transactional.html
جيثب: https://github.com/tharindu1998/transactional-blog
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3