स्प्रिंग बूट में लेनदेन का प्रबंधन @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 स्प्रिंग बूट का उपयोग आपको लेनदेन को घोषणात्मक रूप से प्रबंधित करने की अनुमति देता है, यह निर्दिष्ट करते हुए कि आप लेनदेन को विभिन्न परिदृश्यों में कैसे व्यवहार करना चाहते हैं। यह डेटा स्थिरता सुनिश्चित करने में मदद करता है और आपके अनुप्रयोगों में त्रुटि प्रबंधन को सरल बनाता है।
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