Spring Mvc Aop


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.settingsorg.eclipse.jdt.core.prefs

     文件         90  2016-06-28 09:33  AopTest Maven Webapp.settingsorg.eclipse.m2e.core.prefs

     文件        863  2016-06-28 09:40  AopTest Maven Webapp.settingsorg.eclipse.wst.common.component

     文件        296  2016-06-28 09:33  AopTest Maven Webapp.settingsorg.eclipse.wst.common.project.facet.core.xml

     文件         49  2016-06-28 09:33  AopTest Maven Webapp.settingsorg.eclipse.wst.jsdt.ui.superType.container

     文件          6  2016-06-28 09:33  AopTest Maven Webapp.settingsorg.eclipse.wst.jsdt.ui.superType.name

     文件       3036  2016-06-28 14:18  AopTest Maven Webapppom.xml

     文件       4314  2016-06-28 14:57  AopTest Maven WebappsrcmainjavacomaopAspectstyle.java

     文件        779  2016-06-28 09:50  AopTest Maven WebappsrcmainjavacomwlxcontrollerTestController.java

     文件       1073  2016-06-27 16:44  AopTest Maven Webappsrcmain
esourceslog4j.properties

     文件       2998  2016-06-28 11:43  AopTest Maven Webappsrcmain
esourcesspring-mvc.xml

     文件        693  2016-06-28 10:50  AopTest Maven Webappsrcmain
esourcesspring.xml

     文件        780  2016-06-28 10:05  AopTest Maven Webappsrcmainwebappindex.jsp

     文件        968  2016-06-28 09:52  AopTest Maven WebappsrcmainwebappWEB-INF est.jsp

     文件       2356  2016-06-28 09:49  AopTest Maven WebappsrcmainwebappWEB-INFweb.xml

     文件        780  2016-06-28 10:05  AopTest Maven Webapp argetAopTestindex.jsp

     文件       4768  2016-06-28 14:26  AopTest Maven Webapp argetAopTestWEB-INFclassescomaopAspectstyle.class

     文件       1421  2016-06-28 14:26  AopTest Maven Webapp argetAopTestWEB-INFclassescomwlxcontrollerTestController.class

     文件        665  2016-06-28 14:25  AopTest Maven Webapp argetAopTestWEB-INFclasses
ebel.xml

     文件       2998  2016-06-28 14:25  AopTest Maven Webapp argetAopTestWEB-INFclassesspring-mvc.xml

     文件        693  2016-06-28 14:25  AopTest Maven Webapp argetAopTestWEB-INFclassesspring.xml

     文件    2029794  2016-06-28 10:36  AopTest Maven Webapp argetAopTestWEB-INFlibant-1.9.6.jar

     文件      18392  2016-06-28 10:35  AopTest Maven Webapp argetAopTestWEB-INFlibant-launcher-1.9.6.jar

     文件       4467  2016-05-08 21:28  AopTest Maven Webapp argetAopTestWEB-INFlibaopalliance-1.0.jar

     文件      53468  2016-06-28 10:35  AopTest Maven Webapp argetAopTestWEB-INFlibasm-5.1.jar

     文件     117528  2016-06-28 10:14  AopTest Maven Webapp argetAopTestWEB-INFlibaspectjrt-1.8.9.jar

     文件    1864922  2016-06-28 10:18  AopTest Maven Webapp argetAopTestWEB-INFlibaspectjweaver-1.8.9.jar

............此处省略71个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)