คำถามติดแท็ก spring-aop

6
Spring - @Transactional - เกิดอะไรขึ้นในพื้นหลัง
ฉันต้องการที่จะรู้ว่าสิ่งที่เกิดขึ้นจริงเมื่อคุณอธิบายวิธีการด้วย@Transactionalหรือไม่ แน่นอนฉันรู้ว่า Spring จะปิดวิธีการนั้นในธุรกรรม แต่ฉันมีข้อสงสัยดังต่อไปนี้: ฉันได้ยินมาว่า Spring สร้างคลาสพร็อกซีหรือไม่ คนที่สามารถอธิบายเรื่องนี้ในเชิงลึก มีอยู่จริงในพร็อกซีคลาสนั้น เกิดอะไรขึ้นกับชั้นเรียนจริง และฉันจะดูชั้นพร็อกซีที่สร้างขึ้นของสปริงได้อย่างไร ฉันยังอ่านในเอกสาร Spring ที่: หมายเหตุ: เนื่องจากกลไกนี้จะขึ้นอยู่กับผู้รับมอบฉันทะเท่านั้น 'ภายนอก' วิธีการโทรเข้ามาผ่านพร็อกซี่จะถูกดัก ซึ่งหมายความว่า 'การภาวนาด้วยตนเอง' เช่นวิธีการภายในวัตถุเป้าหมายที่เรียกใช้วิธีการอื่นของวัตถุเป้าหมายจะไม่นำไปสู่การทำธุรกรรมจริงที่รันไทม์แม้ว่าจะมีการทำเครื่องหมายด้วยวิธีการที่เรียก@Transactional! ที่มา: http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html เหตุใดการเรียกใช้เมธอดภายนอกเท่านั้นจึงจะอยู่ภายใต้ธุรกรรมและไม่ใช่วิธีเรียกใช้ด้วยตนเอง

8
Spring AOP กับ AspectJ
ฉันอยู่ภายใต้การแสดงผลที่ Spring AOP ใช้ดีที่สุดสำหรับงานเฉพาะแอปพลิเคชันเช่นความปลอดภัยการบันทึกธุรกรรม ฯลฯ เนื่องจากใช้หมายเหตุประกอบ Java5 ที่กำหนดเองเป็นเฟรมเวิร์ก อย่างไรก็ตาม AspectJ ดูเหมือนจะเป็นมิตรกับรูปแบบการออกแบบที่ฉลาดกว่า ทุกคนสามารถเน้นข้อดีและข้อเสียต่าง ๆ ของการใช้ Spring AOP กับ AspectJ ในแอปพลิเคชัน Spring ได้หรือไม่?

9
@AspectJ pointcut สำหรับวิธีการทั้งหมดของคลาสที่มีคำอธิบายประกอบเฉพาะ
ฉันต้องการตรวจสอบวิธีการสาธารณะทั้งหมดของทุกชั้นเรียนพร้อมคำอธิบายประกอบที่ระบุ (พูด @Monitor) (หมายเหตุ: คำอธิบายประกอบอยู่ในระดับชั้นเรียน) สิ่งที่เป็นไปได้สำหรับสิ่งนี้คืออะไร? หมายเหตุ: ฉันใช้ @AspectJ style Spring AOP
127 java  aop  aspectj  spring-aop 

8
การเรียกเมธอด Spring @Transaction โดยเมธอดภายในคลาสเดียวกันไม่ได้ผลใช่หรือไม่
ฉันเพิ่งเริ่มทำธุรกรรม Spring มีบางอย่างที่ฉันพบว่าแปลกจริงๆฉันอาจเข้าใจเรื่องนี้อย่างถูกต้อง ฉันต้องการมีทรานแซคชันในระดับเมธอดและฉันมีเมธอดผู้โทรภายในคลาสเดียวกันและดูเหมือนว่ามันจะไม่เป็นแบบนั้นมันจะต้องถูกเรียกจากคลาสแยกต่างหาก ฉันไม่เข้าใจว่ามันเป็นไปได้อย่างไร หากใครมีความคิดในการแก้ไขปัญหานี้ฉันจะขอบคุณมาก ฉันต้องการใช้คลาสเดียวกันเพื่อเรียกใช้วิธีการทำธุรกรรมที่มีคำอธิบายประกอบ นี่คือรหัส: public class UserService { @Transactional public boolean addUser(String userName, String password) { try { // call DAO layer and adds to database. } catch (Throwable e) { TransactionAspectSupport.currentTransactionStatus() .setRollbackOnly(); } } public boolean addUsers(List<User> users) { for (User user : users) { …

13
Spring AOP: JoinPoint และ PointCut ต่างกันอย่างไร
ฉันกำลังเรียนรู้แนวคิด Aspect Oriented Programming และ Spring AOP ฉันไม่เข้าใจความแตกต่างระหว่าง Pointcut และ Joinpoint - ทั้งคู่ดูเหมือนจะเหมือนกันสำหรับฉัน Pointcut คือที่ที่คุณใช้คำแนะนำของคุณและ Joinpoint ก็เป็นสถานที่ที่เราสามารถใช้คำแนะนำของเราได้ แล้วความแตกต่างคืออะไร? ตัวอย่างของ pointcut สามารถ: @Pointcut("execution(* * getName()") ตัวอย่างของ Joinpoint คืออะไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.