Tôi gặp sự cố với định nghĩa điểm cắt trong Spring (phiên bản 2.5.6). Tôi đang cố gắng để đánh chặn tất cả các cuộc gọi phương thức đến một lớp học, ngoại trừ một phương pháp nhất định (someMethod trong ví dụ dưới đây).Cú pháp cú pháp AOP của Spring cho AND, OR và NOT
<aop:config>
<aop:advisor
pointcut="execution(* x.y.z.ClassName.*(..)) AND NOT
execution(* x.y.x.ClassName.someMethod(..))"
/>
</aop:config>
Tuy nhiên, trình chặn cũng được gọi cho một sốPhương pháp.
Sau đó, tôi cố gắng này:
<aop:config>
<aop:advisor
pointcut="execution(* x.y.z.ClassName.(* AND NOT someMethod)(..)))"
/>
</aop:config>
Nhưng điều này không biên dịch vì nó không phải là cú pháp hợp lệ (tôi nhận được một BeanCreationException).
Ai đó có thể đưa ra bất kỳ mẹo nào không?
Bạn đã cân nhắc viết logic khía cạnh với kiểu @AspectJ thay thế? Nó đơn giản hơn và mạnh mẽ hơn để viết logic khía cạnh với Java. Đặc biệt là nếu bạn đang sử dụng Eclipse với plugin AJDT. – Espen