Frontier: ด้วยการศึกษาเชิงลึกมากขึ้นของการจัดการธุรกรรมฤดูใบไม้ผลิบทความนี้จะไม่ทำตัวอย่าง แต่ระบุคลาสเฉพาะและไฟล์การกำหนดค่าสำหรับคำอธิบาย
เนื้อหาของบทความนี้:
1. เข้าใจว่าการทำธุรกรรมที่เปิดเผยคืออะไร?
2. การจัดการธุรกรรมที่เปิดเผยคืออะไร?
3. ความแตกต่างระหว่างการจัดการธุรกรรมประเภทนี้คืออะไร?
1. ธุรกรรมที่เปิดเผยคืออะไร?
การจัดการธุรกรรมที่ประกาศเป็นวิธีหนึ่งในการจัดการธุรกรรมของโปรแกรมที่จัดทำโดยฤดูใบไม้ผลิ ธุรกรรมที่ประกาศของสปริงใช้วิธีการประกาศเพื่อจัดการธุรกรรมและใช้การประมวลผลการทำธุรกรรมในไฟล์การกำหนดค่าสปริงเพื่อแทนที่การประมวลผลการทำธุรกรรมตามรหัส ข้อดีของสิ่งนี้คือการจัดการธุรกรรมไม่ได้บุกรุกส่วนประกอบการพัฒนา โดยเฉพาะวัตถุตรรกะทางธุรกิจจะไม่ทราบว่าอยู่ในการจัดการธุรกรรม ในความเป็นจริงควรเป็นจริงเพราะการจัดการธุรกรรมเป็นบริการระดับระบบไม่ใช่ส่วนหนึ่งของตรรกะทางธุรกิจ หากคุณต้องการเปลี่ยนการจัดการธุรกรรมคุณจะต้องแก้ไขการกำหนดค่าในไฟล์กำหนดค่าที่กำหนดไว้เท่านั้น เมื่อไม่จำเป็นต้องมีการจัดการธุรกรรมเพียงแค่แก้ไขในไฟล์การกำหนดค่าและลบบริการการจัดการธุรกรรมโดยไม่ต้องเปลี่ยนรหัสและรวบรวมใหม่ซึ่งสะดวกมากในการบำรุงรักษา
2. วิธีการจัดการธุรกรรมที่ประกาศ
ก่อนอื่นมาดูการจัดการธุรกรรมดั้งเดิมก่อนที่เราจะสามารถพูดคุยเกี่ยวกับวิธีการจัดการธุรกรรมที่ประกาศ
ดังที่เห็นได้จากรูปด้านบนก่อนอื่นเราจำเป็นต้องสร้างเซสชันใหม่ Opensession () ประการที่สองเราต้องสร้างและทำธุรกรรมผ่านวิธี getTransaction ของเซสชัน (). เริ่มต้น () วิธีการและ getTransaction () ด้วยวิธีนี้ทุกครั้งที่เราเรียกวิธีนี้เราจะสร้างเซสชันใหม่ใหม่และทำสิ่งเดียวกันซ้ำ ๆ ซึ่งไม่สอดคล้องกับแนวคิดการออกแบบวิศวกรรมซอฟต์แวร์ของเรา ต่อไปเราใช้การจัดการธุรกรรมที่ประกาศเพื่อทำให้ง่ายขึ้นและปรับรหัส
1. ใช้การจัดการธุรกรรม SpringAop Declarative
1.1. เราจำเป็นต้องนำเข้า AOP หลายแพ็คเกจ:
1.2. จากนั้นดำเนินการกำหนดค่าธุรกรรมในไฟล์กำหนดค่า Application.xml:
1.3. แก้ไขวิธีการสอบถามข้อมูลทั้งหมด:
หลังจากคำอธิบายข้างต้นเราสามารถเห็นการปรับเปลี่ยนวิธี showallnews () ก่อนอื่นเราเปลี่ยนวิธี OpenSession () ดั้งเดิมเป็นวิธี getCurrentSession () (หมายเหตุ: ภาพหน้าจอมีความคิดเห็นเพื่อแสดงความแตกต่างของพวกเขาดังนั้นฉันจะไม่ทำซ้ำ) ไม่จำเป็นต้องสร้างและทำธุรกรรมด้วยตนเอง SpringAop ของเราจะจัดการธุรกรรมโดยอัตโนมัติและปิดเซสชันโดยอัตโนมัติ
2. ใช้วิธีการอธิบายประกอบ @Transactional
2.1. ก่อนอื่นเราจำเป็นต้องดำเนินการกำหนดค่าธุรกรรมในไฟล์การกำหนดค่า Application.xml (แจ้งสปริงคอนเทนเนอร์เพื่อจัดการการประมวลผลถั่วของคำอธิบายประกอบ @Transactional):
2.2. จากนั้นไม่จำเป็นต้องดำเนินการหรือแก้ไขใด ๆ ใน NewsDaoimpl:
2.3. เพิ่มคำอธิบายประกอบให้กับ NewsServiceImpl
ที่นี่เราสามารถเพิ่มคำอธิบายประกอบ @Transactional ลงในชั้นเรียน (ซึ่งหมายความว่าวิธีการทั้งหมดจะถูกเพิ่มเข้าไปในการจัดการธุรกรรม) หรือเพิ่มคำอธิบายประกอบ @Transactional ลงในวิธีการเฉพาะ หากเป็นวิธีที่ไม่จำเป็นต้องมีการแก้ไขข้อมูลให้เพิ่มแอตทริบิวต์
ตัวอย่างเช่น: วิธีการสอบถามข้อมูลทั้งหมด @TransActional (readOnly = true)
3. ความแตกต่างระหว่างการจัดการธุรกรรมที่ประกาศโดยใช้คำอธิบายประกอบ SpringAop และ @Transactional:
1) การจัดการการทำธุรกรรมการกำหนดค่าของ SpringAop มีการมีเพศสัมพันธ์ต่ำความสามารถในการอ่านต่ำการแสดงออกโดยละเอียดและความยืดหยุ่นสูง
2) คำอธิบายประกอบ @Transactional มีความสามารถในการอ่านสูงและเนื้อหาจะกระจายไปและไม่เอื้อต่อการจัดการและการบำรุงรักษาแบบครบวงจรและมีการมีเพศสัมพันธ์สูง
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น