Я новичок в Spring aop, и я решил использовать aop для отслеживания времени выполнения класса Action Struts2. Я сделал следующее. Но при запуске приложения метод setter класса действия не называется. Вот мой код. конфигурации XML:Spring aop with struts2
<aop:aspectj-autoproxy/>
<bean id="myAspect" class="abc.xyz.ActionClassAspect"/>
<aop:config>
<aop:pointcut id="actionClassPointcut" expression="execution(public * abc.xyz.action.*.*(..))
and !execution(public * abc.xyz.action.*Action.get*(..))
and !execution(public * abc.xyz.action.*Action.set*(..))"/>
<aop:around pointcut-ref="actionClassPointcut" method="doActionClassProfilling"/>
</aop:config>
Формат:
public Object doActionClassProfilling(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
long start = System.currentTimeMillis();
Object returnValue = proceedingJoinPoint.proceed(proceedingJoinPoint.getArgs());
long end = System.currentTimeMillis();
System.out.println(proceedingJoinPoint.getClass()+" TIME: "+(end-start));
return returnValue;
}
Класс действия:
private String userID, password;
@Override
public String execute() throws Exception {
try {
LoginService loginService = LoginService.getInstance();;
UserProfile userProfile = loginService.validateUser(userID, password);
Map<String, Object> sessionMap = ActionContext.getContext().getSession();
sessionMap.put("USER_PROFILE", userProfile);
return SUCCESS;
} catch(Exception e) {
return ERROR;
}
}
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
Спасибо заранее.
Если вы просто хотите время выполнения трека, использование перехватчика Struts2 было бы проще –
Не просто отслеживать время выполнения класса действия. Я хочу отслеживать всю транзакцию. то есть. Из класса действия класса вызываемых служб и каждого числа DAO, вызываемых из этой службы, и времени выполнения этих слоев. – Maheshkumar
Я хочу это как отдельный модуль. Coz Я удалю этот модуль во время производства. – Maheshkumar