การแนะนำ

แนวคิดของธุรกรรมเป็นพื้นฐานของระบบการจัดการฐานข้อมูล (DBMS) ธุรกรรมช่วยให้มั่นใจในความสมบูรณ์ของข้อมูลโดยการจัดการชุดคำสั่ง SQL เป็นหน่วยงานเดียว หากการดำเนินการเดียวภายในธุรกรรมล้มเหลว ธุรกรรมทั้งหมดจะล้มเหลว และฐานข้อมูลยังคงไม่เปลี่ยนแปลง

Spring ซึ่งเป็นเฟรมเวิร์กที่แข็งแกร่งและได้รับความนิยมสำหรับการสร้างแอปพลิเคชัน Java นำเสนอเลเยอร์นามธรรมที่สอดคล้องกันสำหรับการจัดการธุรกรรม ทำให้ง่ายต่อการจัดการธุรกรรมใน DBMS ประเภทต่างๆ ในบล็อกโพสต์นี้ เราจะเจาะลึกว่า Spring จัดการธุรกรรมอย่างไร

ทำความเข้าใจธุรกรรมในฤดูใบไม้ผลิ

การสนับสนุนธุรกรรมของ Spring มีเป้าหมายเพื่อให้ API ที่เรียบง่ายขึ้นสำหรับการจัดการธุรกรรมแบบเป็นโปรแกรมและการจัดการธุรกรรมที่เปิดเผยในแอปพลิเคชัน API ธุรกรรมหลักใน Spring คือ PlatformTransactionManager และ TransactionTemplate

PlatformTransactionManager เป็นอินเทอร์เฟซหลักที่สรุปนโยบายการจัดการธุรกรรม มันทำงานร่วมกับกลยุทธ์การทำธุรกรรมต่างๆ ของ Spring โดยสรุปความหมายของธุรกรรม เช่น การเริ่มต้นและการทำธุรกรรม

TransactionTemplate เป็นคลาสตัวช่วยที่ช่วยลดความยุ่งยากในการแบ่งเขตธุรกรรมทางโปรแกรมและการจัดการข้อยกเว้นของธุรกรรม เทมเพลตจะจัดการการสร้างและการเปิดตัวทรัพยากร ช่วยให้คุณมุ่งเน้นไปที่ตรรกะทางธุรกิจมากกว่าการจัดการธุรกรรมที่สำคัญ

การจัดการธุรกรรมที่เปิดเผย

การจัดการธุรกรรมที่เปิดเผยใน Spring ช่วยให้คุณจัดการธุรกรรมผ่านการกำหนดค่าแทนที่จะทำธุรกรรมฮาร์ดโค้ดในรหัสแอปพลิเคชันของคุณ โดยทั่วไปจะเป็นแนวทางที่ต้องการ เนื่องจากจะทำให้การจัดการธุรกรรมอยู่ภายนอกจากรหัสธุรกิจ

Spring รองรับธุรกรรมที่ประกาศโดยใช้คำแนะนำธุรกรรม (ผ่าน AOP) และคำอธิบายประกอบ @Transactional

คำอธิบายประกอบ @Transactional สามารถใช้ได้ทั้งในระดับชั้นเรียนและระดับเมธอด Spring สร้างพร็อกซีรอบคลาสที่มีคำอธิบายประกอบเพื่อใช้การจัดการธุรกรรม

ต่อไปนี้คือตัวอย่างการใช้คำอธิบายประกอบ @Transactional:

@Service
public class…