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(); }}
阅读全文
0 0
- Spring切面
- spring切面
- Spring中创建切面
- Spring切面管理日志
- spring 切面方法
- spring切面配置
- Spring面向切面编程
- spring 切面编程实例
- 【Spring】AOP - 面向切面
- spring aop 定义切面
- spring基础cache切面
- Spring切面配置
- spring面向切面
- Spring AOP切面
- 【Spring】AOP - 面向切面
- Spring AOP切面编程
- Spring配置切面事务
- 记录spring切面代码,
- mysql问题之infomation_schema
- leetcode 62|63. Unique Paths 1|2
- 纯web前端还能活多久
- socket select failed selinux
- Java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherSer
- spring切面
- Go语言运算符
- 『0017』
- 『0018』
- Wget下载整个网站(包含图片/JS/CSS)
- SpringMVC流程框架总体介绍
- 图的生成树计数
- 七牛短视频ios接入的一些问题
- mybatis中查询有复杂关联对象的结果集