在Spring Boot框架中使用AOP

栏目: Java · 发布时间: 6年前

内容简介: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 方法之后就会打印出本次处理的用时。

阅读博客还不过瘾?

欢迎大家扫二维码加入交流群,讨论和博客有关的技术问题,还可以和博主有更多互动

在Spring Boot框架中使用AOP

博客转载、线下活动及合作等问题请邮件至

shadowfly_zyl@hotmail.com

进行沟通


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web前端黑客技术揭秘

Web前端黑客技术揭秘

钟晨鸣、徐少培 / 电子工业出版社 / 2013-1 / 59.00元

Web前端的黑客攻防技术是一门非常新颖且有趣的黑客技术,主要包含Web前端安全的跨站脚本(XSS)、跨站请求伪造(CSRF)、界面操作劫持这三大类,涉及的知识点涵盖信任与信任关系、Cookie安全、Flash安全、DOM渲染、字符集、跨域、原生态攻击、高级钓鱼、蠕虫思想等,这些都是研究前端安全的人必备的知识点。本书作者深入剖析了许多经典的攻防技巧,并给出了许多独到的安全见解。 本书适合前端工......一起来看看 《Web前端黑客技术揭秘》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具