(7)学习SpringBoot 之 AOP
来源:互联网 发布:单身 快乐 知乎 编辑:程序博客网 时间:2024/05/21 10:04
1.pom.xml 引入依赖包,并创建启动类
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!--引入父标签 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.7.RELEASE</version></parent><groupId>cn.moye</groupId><artifactId>spring-boot-aop</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>spring-boot-aop</name><url>http://maven.apache.org</url><dependencies><!-- web 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- aop 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!-- 热部署依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-loader</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency></dependencies><!-- maven插件 --><properties><jdk.version>1.8</jdk.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><build><finalName>spring-boot-aop</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><srouce>${jdk.version}</srouce><target>${jdk.version}</target><encoed>${project.build.sourceEncoding}</encoed></configuration></plugin></plugins></build></project>
2.编写切面测试类
package cn.moye.springboot.aspect;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.springframework.context.annotation.Configuration;/** * 定义切面 * */@Aspect@Configurationpublic class LoggerAopConfig {private static Log logger = LogFactory.getLog(LoggerAopConfig.class);/** * 定义切入点:拦截cn.moye.springboot.controller包以及子包下的所有类 */@Pointcut("execution(* cn.moye.springboot.controller..*.*(..))")public void executeSystem() {}/** * 前置通知 * @param point 目标类连接点对象 */@Before("executeSystem()")public void invokeBefore(JoinPoint point) {logger.info("调用------" + getClassName(point) + " 执行 " + getMethodName(point) + " 方法之前");}/** * 后置通知 * @param point 目标类连接点对象 */@After("executeSystem()")public void invokeAfter(JoinPoint point) {logger.info("调用------" + getClassName(point) + " 执行 " + getMethodName(point) + " 方法之后");}/** * 获取被代理对象的类全名 * * @param point * @return */private String getClassName(JoinPoint point) {return point.getTarget().getClass().getName();}/** * 获取方法名 * * @param point * @return */private String getMethodName(JoinPoint point) {return point.getSignature().getName();}}
3.编写控制器测试类
package cn.moye.springboot.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * controller测试类 */@RestControllerpublic class AopController {@RequestMapping("/aop")public String testAop() {return "test Aop";}@RequestMapping("/test")public String testAop1(){return "Aop Test";}}
4.测试结果
2017-09-29 10:24:29.480 INFO 3984 --- [nio-8080-exec-1] c.m.springboot.aspect.LoggerAopConfig : 调用------cn.moye.springboot.controller.AopController 执行 testAop 方法之前2017-09-29 10:24:29.488 INFO 3984 --- [nio-8080-exec-1] c.m.springboot.aspect.LoggerAopConfig : 调用------cn.moye.springboot.controller.AopController 执行 testAop 方法之后
阅读全文
0 0
- (7)学习SpringBoot 之 AOP
- springboot学习(7)springboot使用AOP打印日志信息
- SpringBoot学习-(九)SpringBoot中的AOP
- springboot之AOP配置
- SpringBoot之集成Spring AOP
- SpringBoot之集成Spring AOP
- SpringBoot之集成Spring AOP
- SpringBoot之集成Spring AOP
- SpringBoot学习(四)—AOP切面编程
- SpringBoot 学习记录(五): aop记录日志
- SpringBoot学习笔记——浅谈AOP
- 基于Springboot的Spring AOP学习记录
- springboot-AOP
- SpringBoot-AOP
- springBoot aop
- SpringBoot学习之--单元测试(八)-2
- (3)学习SpringBoot 之 Junit测试
- (5)学习SpringBoot 之 jsp
- leetCode 115. Distinct Subsequences
- DEDECMS(织梦cms)友情链接报错$row['url']不存在问题的解决
- BZOJ 1044 [HAOI2008]木棍分割 二分+动态规划
- nginx的请求限制
- 简单地css重置样式
- (7)学习SpringBoot 之 AOP
- Android Studio 中修改versionCode跟versionName (更新版本)
- JAVA Spring报错 (1)
- Linux乌班图终端操作SVN
- 一台电脑运行多个Tomcat---Windows
- Java 字符串判断为空总结
- 奇偶分割数组-LintCode
- Ext.net 底层查看
- PMM出问题排查