tôi cần phải tạo ra một khía cạnh với một pointcut phù hợp với một phương pháp nếu:pointcut phương pháp phù hợp với các thông số chú thích
- là công
- lớp của nó được chú thích với @Controller (Cuối cùng không)
- Một trong các tham số của nó (có thể có nhiều tham số) được chú thích bằng @MyParamAnnotation.
Tôi nghĩ rằng hai điều kiện đầu tiên rất dễ dàng, nhưng tôi không biết liệu có thể thực hiện được điều kiện thứ ba với Spring hay không. Nếu nó không phải là, có lẽ tôi có thể thay đổi nó thành:
- Một trong những thông số của nó là một thể hiện của loại com.me.MyType (hoặc thực hiện một số giao diện)
Bạn có nghĩ rằng nó có thể đạt được điều này? Và hiệu suất sẽ tốt?
Cảm ơn
EDIT: Một ví dụ về một phương pháp phù hợp. Như bạn có thể thấy, MyMethod không được chú thích (nhưng nó có thể là).
@Controller
public class MyClass {
public void MyMethod (String arg0, @MyParamAnnotation Object arg1, Long arg3) {
...
}
}
EDIT: Giải pháp cuối cùng tôi đã được sử dụng, dựa trên câu trả lời @Espen. Như bạn có thể thấy, tôi đã thay đổi các điều kiện của mình một chút: lớp không thực sự cần phải là một @Controller.
@Around("execution(public * * (.., @SessionInject (*), ..))")
public void methodAround(JoinPoint joinPoint) throws Exception {
...
}
Có vẻ tốt, nhưng nó không chính xác những gì tôi đang tìm kiếm. Tôi đã chỉnh sửa câu hỏi của mình để chính xác hơn. Cảm ơn. – sinuhepop
Tôi đã tìm thấy một phương pháp để đơn giản hóa nó. Tôi đã chỉnh sửa câu hỏi của tôi, nhưng tất cả các khoản tín dụng về bạn! Cảm ơn. – sinuhepop
Chỉnh sửa tốt! Vui mừng khi thấy bạn thích loại câu hỏi này;) – sinuhepop