内容简介:Spring Boot是基于Spring的用来开发Web应用的框架,功能与Spring MVC有点类似,但是Spring Boot的一大特点就是需要的配置非常少。Spring Boot推荐假设现在有这样一种场景,需要统计某个接口的处理耗时,我们可以使用AOP来实现,在Spring Boot中使用AOP也非常简单,只需要一点简单的配置即可。这是一个使用@RestController注解的Controller类,这个类会去下载一些XML文件,然后压缩,最后删除下载的XML文件。现在我们要统计整个处理过程的耗时
作者简介
彬哥,目前任职于饿了么,从事饿了么物流侧核心系统的开发工作,喜爱钻研各种技术,用技术解决实际问题。
在Spring Boot框架中使用AOP
Spring Boot是基于Spring的用来开发Web应用的框架,功能与Spring MVC有点类似,但是Spring Boot的一大特点就是需要的配置非常少。Spring Boot推荐 convention over configuration
,也就是约定大于配置,因此Spring Boot会帮你做许多自动的配置,并且Spring Boot使用的是Java Config,几乎可以做到零XML文件配置。
假设现在有这样一种场景,需要统计某个接口的处理耗时,我们可以使用AOP来实现,在Spring Boot中使用AOP也非常简单,只需要一点简单的配置即可。
需要使用AOP的类
@RestController public class DownloadController { @Autowired private XmlDownloadService downloadService; @Autowired private XmlFileClearService clearService; @RequestMapping("/download") @Timer public String download() throws Exception { downloadService.download(); clearService.compress(); clearService.clearAll(); return "ok"; } } 复制代码
这是一个使用@RestController注解的Controller类,这个类会去下载一些XML文件,然后压缩,最后删除下载的XML文件。现在我们要统计整个处理过程的耗时,使用AOP来实现。在 download
上使用了一个 @Timer
注解,这是一个自定义的普通注解,用来标记这个方法作为一个切点。
Aspect类
@Aspect @Component public class VipAspect { private static final Logger logger = LoggerFactory.getLogger(VipAspect.class); private long start; //定义切点 @Pointcut("@annotation(cn.magicwindow.mlink.content.annotation.Timer)") public void timer(){} //在方法执行前执行 @Before("timer()") public void before() { start = System.currentTimeMillis(); } //在方法执行后执行 @After("timer()") public void after() { long now = System.currentTimeMillis(); logger.info("job took time {}s in summary", (now - start) / 1000); } } 复制代码
这里使用了注解来标记切点,也可以直接按照方法名称来定义,具体的使用方法可以参考官方文档。
配置Spring Boot支持AOP
@Configuration @EnableAspectJAutoProxy public class Config { } 复制代码
只需要使用 @EnableAspectJAutoProxy
注解开启Spring Boot的AOP支持即可。
最后,在调用 download
方法之后就会打印出本次处理的用时。
阅读博客还不过瘾?
欢迎大家扫二维码加入交流群,讨论和博客有关的技术问题,还可以和博主有更多互动
博客转载、线下活动及合作等问题请邮件至
shadowfly_zyl@hotmail.com
进行沟通
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP高级开发技术与应用
曹铁群、孙一江、张永学 / 清华大学出版社 / 2002-5-1 / 32.00
作为一本介绍PHP高级开发技术的书籍,本书并不像一般介绍PHP语言的书籍那样讲述大量的语法规则,罗列大量的函数,而是着眼于PHP在Web中的实际应用,特别是PHP对最新技术的支持,比如WAP技术、XML技术等。 本书涉及到的内容主要有:高级环境配置、高级语法和应用、正则表达式、面向对象技术、高级图像技术、用PHPLIB实现模板的处理、用PHPDoc实现文档的自动生成、PHP与组件技术、PH......一起来看看 《PHP高级开发技术与应用》 这本书的介绍吧!
XML、JSON 在线转换
在线XML、JSON转换工具
正则表达式在线测试
正则表达式在线测试