1
我必須登錄我的控制器哪個用戶正在執行操作。而不是在每個控制器的每個方法中寫入日誌消息。我想用aspectj來做。我aspectj模式的方法不起作用
我有一個包com.bbvaglobalnet.manager.controller包含控制器,我希望在這個包和子包的類的所有公共方法中輸出日誌消息。所以看的
Spring aspect oriented programming
節6.2.3.4我想我的表情是這樣的
執行(公衆* com.bbvaglobalnet.manager.controller .. 。(..))
我的方面的類是以下
package com.bbvaglobalnet.manager.aspects;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
import com.bbvaglobalnet.manager.controller.*;
@Aspect
@Component
public class LogUserAspect {
private final static Logger LOGGER = LoggerFactory.getLogger(LogUserAspect.class);
@Before("execution(public * com.bbvaglobalnet.manager.controller..*.*(..))")
public void logUser2(JoinPoint jp) {
LOGGER.info("[User: {}]", SecurityContextHolder.getContext().getAuthentication().getName());
}
}
我知道豆被註冊,我已經用另一種不同的模式和類接縫努力工作
我的Spring AOP的上下文配置
<context:component-scan base-package="com.bbvaglobalnet.manager.aspects" />
<aop:aspectj-autoproxy/>
對不起,我的英語,這不是我第一次語言