2012-12-24 21 views
12

Tôi có một phương thức có giá trị trả về trong lớp DAO, tôi muốn thay đổi giá trị trả về bằng AOP mùa xuân, theo yêu cầu khác nhau và sau đó gửi đến phương thức tương ứng trong lớp SERVICE; nhưng tôi không biết làm thế nào để làm như vậy.Làm thế nào để thay đổi giá trị trả về của spring aop

+1

Tôi không thể giúp bạn với Spring AOP, nhưng tôi đặc biệt khuyên bạn nên đăng một số mã nguồn nếu bạn muốn trợ giúp từ cộng đồng Stackoverflow. – ecbrodie

Trả lời

15

Bạn có thể áp dụng một khía cạnh @Around cho phương thức có loại trả về phải được sửa đổi. Bạn có thể xem blog post của tôi về cách thêm phần tử Spring AOP vào ứng dụng Spring, sau đó viết một khía cạnh @Around. Tôi đã sử dụng khía cạnh này cho Memoizing kết quả của một phương pháp, nhưng trong trường hợp của bạn, bạn sẽ lấy giá trị trả lại là ProceedingJoinPoint.proceed(), nhập nó vào lớp thích hợp, sau đó sửa đổi nó và trả về nó.

Trong trường hợp bạn dự định trả về một đối tượng hoàn toàn khác, thì điều đó sẽ dẫn đến ClassCastException, trừ khi đối tượng trả về thực sự là một lớp con của kiểu trả về.

+0

ok, cảm ơn rất nhiều – cleverUtd

Các vấn đề liên quan