Android中使用AOP编程实现登录检查

AOP即面向切面编程,实现aop的框架很多,这里选用AspectJ,具体介绍和区别参见网上其他文章,这里仅做使用过程的记录~

这里选用的是第三方开源库 AspectJX,这是一个基于AspectJ并在此基础上扩展出来可应用于Android开发平台的AOP框架,可作用于java源码,class文件及jar包,同时支持kotlin的应用。github地址 :https://github.com/HujiangTechnology/gradle_plugin_android_aspectjx

注意:参照官方文档上写的引入方式有个坑,会提示找不到资源,是无法成功引入的,以2.0.6版本为例:

需要把项目根目录下的build.gradle里的依赖

 classpath 'com.github.franticn:gradle_plugin_android_aspectjx:2.0.6'

 替换为

 classpath'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.6'

其他步骤参照官方文档就可以成功引入啦~

接下来就可以进入正题了,首先说明AOP的用途很广泛,我这里只是简单记录如何使用,所以代码精简的不能再精简了......

以常用的登录检查为例:分三步走

第一步:定义一个注解。这个没什么可讲的

1.定义注解

第二步:编写切面,定义切入点及拦截逻辑。

这里需要注意的是定义切入点的时候括号里的语法问题,一定不能错

2.定义切面、切入点

第三步:在需要检查是否登录的方法上添加刚才定义的注解即可

3.简单使用

至此,当调用 testMethod方法的时候,就会执行定义的拦截逻辑代码了。

测试结果如下

登录


未登录

可以看到,当未登录时,testMethod方法是被拦截了,没有继续执行的,而已登录时则是正常执行。这就完成了最简单的aop使用了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.Aspect用户行为统计 他不生成代码,他是生产的搬运工去做行为统计 AOP切面编程 在AOP术语体系中,切面...
    waterge阅读 443评论 0 0
  • 文章对应的项目地址aop-tech,运行一下sample,结合代码和文章,你会收获更多。 熟悉程序开发的都知道OO...
    sososeen09阅读 36,730评论 3 37
  • 简介 AOP(Aspect Oriented Programming)是面向切面编程,OOP(Object Ori...
    戎码虫阅读 1,309评论 5 0
  • 一、简述 1、AOP的概念 如果你用java做过后台开发,那么你一定知道AOP这个概念。如果不知道也无妨,套用百度...
    GitLqr阅读 4,248评论 6 25
  • 个人感觉这个对白画风比较诡异。 一方面有当面打脸之说,明知人家孔夫子谋官而不得,苦苦游走列国,还故意问他,你怎么不...
    海水蓝阅读 204评论 0 0