反射高级应用:自定义AOP框架

本文介绍了如何利用反射技术实现一个自定义的AOP框架,以统计方法执行时间。首先解释了初级和中级工程师对于方法执行时间统计的不同解决方案,然后详细阐述了自定义AOP框架的各个组成部分,包括Advice接口、ExecutionTimeAdvice实现类、BeanFactory和BeanFactoryProxy。通过config.properties配置文件,可以灵活地控制哪些方法输出执行时间。文章最后展示了测试代码和运行结果,以展示自定义AOP框架的灵活性和实用性。
摘要由CSDN通过智能技术生成

点击上方关注“追梦 Java”,一起追梦!

上一篇文章详细介绍了静态代理和动态代理的作用和实现方式,并介绍了动态代理实现的两种方式。熟练掌握反射技术是一个程序员走向高级的必备技能,今天我们来了解一下如何用反射来实现自定义的 AOP 代码,结合配置文件的使用,完成一个反射高级应用的实例,大家感受一下反射的魅力。

为了学习的连贯性,强烈建议大家先阅读 代理设计模式与AOP 一文,然后再来阅读下面的内容。

1

如何统计方法执行的时间?

在日常开发中,我们经常会用到一个功能就是统计一个服务或者是一个方法的执行时间,也就是说在进入方法开始执行到方法执行完毕,总共耗费的时间是多少,用来评估一个方法的执行效率。

初级工程师 A 会说:“解决这个问题简单啊,在这个方法的开始加一行代码记录开始时间 beginTime,在方法的结尾加一行代码记录结束时间 endTime,结束时间 endTime 减去开始时间 beginTime 就是方法的执行时间,最后打印这个时间差就好了呀!”。

中级工程师 B 听了初级工程师 A 的解决方案后说:“你这个方案是能解决问题,但是我们系统里代码几万行,方法那么多,按你这个思路实现,不得累死大家啊!你的建议不妥,我们应该用代理模式来解决这个问题,写一个代理类来统一代理这些方法的执行时间的代码,那个 Spring 框架的 AOP 就能很好地解决这个问题啊!”。

高级工程师 C 点了点头说:“小 B 同学说的没错,解决这个问题的首选方案还是要用 AOP 切面编程,Spring 框架确实可以完美地解决这个问题,你们知道 Spring  AOP 是如何实现的吗?如果没有 Spring 框架,我们自己写代码的话,如何实现这个功能呢? ”。

A 和 B 顿时来了兴趣,不约而同地看向高级工程师 C,异口同声地说:“C 哥,那你给我们讲讲呗......”。

2

自定义 AOP 框架介绍

我们今天实现的这个 AOP 框架主要的功能就是完成统计方法执行的时间,用到的例子是上篇文章中的订单服务、用户服务、支付服务,对这几个概念不了解的同学,建议阅读 代理设计模式与AOP 一文,然后再来阅读下面的内容。

自定义 AOP 框架里有以下几个部分:

1、Advice 接口:用于定义方法的功能增强的接口

2、Advice 接口的实现类 ExecutionTimeAdvice:方法执行时间统计功能增强的实现类

3、BeanFactory 类:创建对象的工厂类,用它创建对象类似于用 new 关键字实例化一个对象。

4、BeanFactoryProxy 类:创建对象的工厂类 BeanFactory 的代理类,用它来代理具体类的对象方法的执行,从而可以增强由它代理的类的方法的功能,比如实现方法执行时间的统计。

5、config.properties 配置文件:用来配置实体类 bean 以及功能增强类 advice。

代码结构如下图:

service 包下的代码详见 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值