spring切面

来源:互联网 发布:算法工程师 老了 编辑:程序博客网 时间:2024/04/28 14:49

maven

     <dependency>            <groupId>org.aspectj</groupId>            <artifactId>aspectjweaver</artifactId>            <version>1.6.10</version>        </dependency>

xml配置

   <beans       xmlns:aop="http://www.springframework.org/schema/aop"  xsi:schemaLocation="             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd>   <aop:aspectj-autoproxy/>

切面

@Aspect@Componentpublic class AopLog {    private HttpServletRequest request;    @Autowired    public void setRequest(HttpServletRequest request) {        this.request = request;    }    private String getClientIp() {        String ip = request.getHeader("Cdn-Src-Ip");        if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {            ip = request.getHeader("x-forwarded-for");        }        if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {            ip = request.getHeader("Proxy-Client-IP");        }        if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {            ip = request.getHeader("WL-Proxy-Client-IP");        }        if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {            ip = request.getRemoteAddr();        }        return ip;    }    @Around("execution(* com.cloud.monitor.controller.instance.*.*(..))")    public String controller(ProceedingJoinPoint joinPoint) throws Throwable {        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ").format(new Date()) + getClientIp());        System.out.print(joinPoint.getSignature() + " -> param:");        for (Object obj : joinPoint.getArgs()) {            System.out.print("\t");            System.out.print(obj);        }        System.out.println();        Object result = joinPoint.proceed();        System.out.println("result:" + result);        return (String) result;    }    @Around("execution(* com.cloud.monitor.service.*.*(..))")    public Object service(ProceedingJoinPoint joinPoint) throws Throwable {        return joinPoint.proceed();    }}
原创粉丝点击