資源簡介
AOP一直無效,如何如何設置都不生效,困擾了一天,終于可以了,特此說明一下,但不代表我理解的就是正確的。
環境: springmvc + maven 基于注解的配置方式
代碼片段和文件信息
package?com.aop;
import?java.lang.reflect.Method;
import?java.text.SimpleDateFormat;
import?java.util.HashMap;
import?java.util.Map;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpSession;
import?org.apache.log4j.Logger;
import?org.aspectj.lang.ProceedingJoinPoint;
import?org.aspectj.lang.annotation.After;
import?org.aspectj.lang.annotation.AfterReturning;
import?org.aspectj.lang.annotation.AfterThrowing;
import?org.aspectj.lang.annotation.Around;
import?org.aspectj.lang.annotation.Aspect;
import?org.aspectj.lang.annotation.Before;
import?org.aspectj.lang.annotation.Pointcut;
import?org.aspectj.lang.reflect.MethodSignature;
import?org.springframework.stereotype.Component;
import?org.springframework.web.context.request.RequestAttributes;
import?org.springframework.web.context.request.RequestContextHolder;
import?org.springframework.web.context.request.ServletRequestAttributes;
import?com.google.gson.Gson;
@Component
@Aspect
public?class?Aspectstyle?{
private?final?Logger?logger?=??Logger.getLogger(this.getClass());
private?String?requestPath?=?null;?//?請求地址
private?String?userName?=?null;?//?用戶名
private?Map??>?inputParamMap?=?null;?//?傳入參數
private?Mapject>?outputParamMap?=?new?HashMapject>();?//?存放輸出結果
private?long?startTimeMillis?=?0;?//?開始時間
private?long?endTimeMillis?=?0;?//?結束時間
private?Method?exeMethod?=?null;?//執行的方法名
private?HttpSession?session;
@Pointcut(“execution(*?com.wlx.controller..*.*(..))“)
public?void?init()?{
System.out.println(“***init不會執行“);
}
@Before(value?=?“init()“)
public?void?before()?{
this.startTimeMillis?=?System.currentTimeMillis();?//?記錄方法開始執行的時間
System.out.println(“方法執行前執行.....“);
}
@AfterReturning(value?=?“init()“)
public?void?afterReturning()?{
System.out.println(“方法執行完執行.....“);
}
@AfterThrowing(value?=?“init()“)
public?void?throwss()?{
System.out.println(“方法異常時執行.....“);
}
@After(value?=?“init()“)
public?void?after()?{
this.endTimeMillis?=?System.currentTimeMillis();?//?記錄方法執行完成的時間
this.printOptLog();
System.out.println(“方法最后執行.....“);
}
@Around(value?=?“init()“)
public?object?around(ProceedingJoinPoint?pjp)?{
RequestAttributes?ra?=?RequestContextHolder.getRequestAttributes();
ServletRequestAttributes?sra?=?(ServletRequestAttributes)?ra;
HttpServletRequest?request?=?sra.getRequest();
session?=?request.getSession();
//?從session中獲取用戶信息
String?loginInfo?=?(String)?session.getAttribute(“username“);
if?(loginInfo?!=?null?&&?!““.equals(loginInfo))?{
userName?=?“admin“;
}?else?{
userName?=?“用戶未登錄“;
}
this.inputParamMap?=?request.getParameterMap();
//?獲取請求地址
this.requestPath?=?request.getRequestURI();
Method?method?=?((MethodSignature)?pjp.getSignature()).getMethod();
this.exeMethod?=?method;
System.out.println(“==方法環繞開始“);
object?o?=?null;
try?{
o?=?pjp.proceed();
this.out
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1088??2016-06-28?09:42??AopTest?Maven?Webapp\.classpath
?????文件???????1521??2016-06-28?09:52??AopTest?Maven?Webapp\.project
?????文件????????530??2016-06-28?09:33??AopTest?Maven?Webapp\.settings\.jsdtscope
?????文件????????430??2016-06-28?09:33??AopTest?Maven?Webapp\.settings\org.eclipse.jdt.core.prefs
?????文件?????????90??2016-06-28?09:33??AopTest?Maven?Webapp\.settings\org.eclipse.m2e.core.prefs
?????文件????????863??2016-06-28?09:40??AopTest?Maven?Webapp\.settings\org.eclipse.wst.common.component
?????文件????????296??2016-06-28?09:33??AopTest?Maven?Webapp\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2016-06-28?09:33??AopTest?Maven?Webapp\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2016-06-28?09:33??AopTest?Maven?Webapp\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件???????3036??2016-06-28?14:18??AopTest?Maven?Webapp\pom.xm
?????文件???????4314??2016-06-28?14:57??AopTest?Maven?Webapp\src\main\java\com\aop\Aspectst
?????文件????????779??2016-06-28?09:50??AopTest?Maven?Webapp\src\main\java\com\wlx\controller\TestController.java
?????文件???????1073??2016-06-27?16:44??AopTest?Maven?Webapp\src\main\resources\log4j.properties
?????文件???????2998??2016-06-28?11:43??AopTest?Maven?Webapp\src\main\resources\spring-mvc.xm
?????文件????????693??2016-06-28?10:50??AopTest?Maven?Webapp\src\main\resources\spring.xm
?????文件????????780??2016-06-28?10:05??AopTest?Maven?Webapp\src\main\webapp\index.jsp
?????文件????????968??2016-06-28?09:52??AopTest?Maven?Webapp\src\main\webapp\WEB-INF\test.jsp
?????文件???????2356??2016-06-28?09:49??AopTest?Maven?Webapp\src\main\webapp\WEB-INF\web.xm
?????文件????????780??2016-06-28?10:05??AopTest?Maven?Webapp\target\AopTest\index.jsp
?????文件???????4768??2016-06-28?14:26??AopTest?Maven?Webapp\target\AopTest\WEB-INF\classes\com\aop\Aspectst
?????文件???????1421??2016-06-28?14:26??AopTest?Maven?Webapp\target\AopTest\WEB-INF\classes\com\wlx\controller\TestController.class
?????文件????????665??2016-06-28?14:25??AopTest?Maven?Webapp\target\AopTest\WEB-INF\classes\rebel.xm
?????文件???????2998??2016-06-28?14:25??AopTest?Maven?Webapp\target\AopTest\WEB-INF\classes\spring-mvc.xm
?????文件????????693??2016-06-28?14:25??AopTest?Maven?Webapp\target\AopTest\WEB-INF\classes\spring.xm
?????文件????2029794??2016-06-28?10:36??AopTest?Maven?Webapp\target\AopTest\WEB-INF\lib\ant-1.9.6.jar
?????文件??????18392??2016-06-28?10:35??AopTest?Maven?Webapp\target\AopTest\WEB-INF\lib\ant-launcher-1.9.6.jar
?????文件???????4467??2016-05-08?21:28??AopTest?Maven?Webapp\target\AopTest\WEB-INF\lib\aopalliance-1.0.jar
?????文件??????53468??2016-06-28?10:35??AopTest?Maven?Webapp\target\AopTest\WEB-INF\lib\asm-5.1.jar
?????文件?????117528??2016-06-28?10:14??AopTest?Maven?Webapp\target\AopTest\WEB-INF\lib\aspectjrt-1.8.9.jar
?????文件????1864922??2016-06-28?10:18??AopTest?Maven?Webapp\target\AopTest\WEB-INF\lib\aspectjweaver-1.8.9.jar
............此處省略71個文件信息
- 上一篇:金油客戶端.rar
- 下一篇:S3C2440A 中文手冊
評論
共有 條評論