Dự án của tôi dựa trên khung mùa xuân 2.5.4. Và tôi cố gắng thêm các khía cạnh cho một số bộ điều khiển (tôi sử dụng aspectj 1.5.3).Aspectj không nắm bắt tất cả các sự kiện trong khung mùa xuân?
Tôi đã kích hoạt tính năng tự động proxy trong ứng dụng servlet.xml, chỉ cần dán những dòng này vào cuối của tập tin xml:
<aop:aspectj-autoproxy />
<bean id="auditLogProcessor" class="com.example.bg.web.utils.AuditLogProcessor" />
Created khía cạnh:
package com.example.bg.web.utils;
import org.apache.log4j.Logger;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class AuditLogProcessor
{
private final static Logger log = Logger.getLogger(AuditLogProcessor.class);
@After("execution(* com.example.bg.web.controllers.assets.AssetThumbnailRebuildController.rebuildThumbnail(..))")
public void afterHandleRequest() {
log.info("test111");
}
@After("execution(* com.example.bg.web.controllers.assets.AssetThumbnailRebuildController.rebuildThumbnail(..))")
public void afterRebuildThumbnail() {
log.info("test222");
}
}
điều khiển của tôi:
class AssetAddController implements Controller
class AssetThumbnailRebuildController extends MultiActionController
Khi tôi đặt điểm phanh trong cố vấn khía cạnh và gọi bộ điều khiển, tôi chỉ bắt sauHandleRequest() nhưng không phải sauRebildThumbnail() Tôi đã làm gì sai?
LƯU Ý
Tôi hỏi câu hỏi này thay mặt cho người bạn của tôi không có quyền truy cập vào SO beta, và tôi không có một đầu mối những gì nó là tất cả về.
EDIT thực
Đã có một số lỗi chính tả, nhờ Cheekysoft. Nhưng vấn đề vẫn còn tồn tại.