• 大小: 20.21MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-26
  • 语言: 其他
  • 标签: 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\.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.xml

     文件         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.xml

     文件       4314  2016-06-28 14:57  AopTest Maven Webapp\src\main\java\com\aop\Aspectstyle.java

     文件        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.xml

     文件        693  2016-06-28 10:50  AopTest Maven Webapp\src\main\resources\spring.xml

     文件        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.xml

     文件        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\Aspectstyle.class

     文件       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.xml

     文件       2998  2016-06-28 14:25  AopTest Maven Webapp\target\AopTest\WEB-INF\classes\spring-mvc.xml

     文件        693  2016-06-28 14:25  AopTest Maven Webapp\target\AopTest\WEB-INF\classes\spring.xml

     文件    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个文件信息

评论

共有 条评论