当前位置: 首页 > news >正文

西安 餐饮 网站建设品牌推广文案

西安 餐饮 网站建设,品牌推广文案,成都本地宝新闻动态,深圳开发小程序前言 AOP编程在Java开发中是一个非常火热的话题,最著名的库为AspectJ Kotlin项目中,通过Gradle插件,也能够使用该库,这是我们下面讲解的重点 由于AspectJ的原理是在预编译阶段,通过插件修改代码,生成代理…
前言

AOP编程在Java开发中是一个非常火热的话题,最著名的库为AspectJ

Kotlin项目中,通过Gradle插件,也能够使用该库,这是我们下面讲解的重点

由于AspectJ的原理是在预编译阶段,通过插件修改代码,生成代理对象

属于编译阶段的功能,因为非常依赖编译工具的版本

这里用的版本是Gradle8.7,如果不兼容记得调整版本号

Gradle脚本代码,用的也是Gradle8.7+KotlinScript的语法,记得根据版本调整

引入插件依赖
pluginManagement {plugins {id("org.jetbrains.kotlin.jvm") version "1.9.23" apply falseid("io.freefair.aspectj.post-compile-weaving") version "8.7.1" apply false}
}dependencyResolutionManagement {repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOSrepositories {mavenCentral()gradlePluginPortal()}
}
应用插件到模块
plugins {id("org.jetbrains.kotlin.jvm")id("io.freefair.aspectj.post-compile-weaving")
}dependencies {api("org.aspectj:aspectjrt:1.9.6")api("org.aspectj:aspectjweaver:1.9.6")
}
Kotlin代码
package com.code.kotlinfun main() {Good().doSomething()
}class Good {fun doSomething() {println("doSomething")}
}
AOP规则

插件会自动搜索带有@Aspect注解的文件

@Pointcut通过特征表达式,来指定切入点,即要拦截哪些方法

@Before @After指定切入方式,即在什么时机切入,方法执行前,还是方法执行后

其它更详细的注解,大家自己根据需要去了解,这里主要讲解集成和使用方式

package com.code.kotlinimport 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@Aspect
class AspectRule {@Pointcut("execution(* com.code.kotlin.Good.doSomething(..))")fun anyFunction() {}@Before("anyFunction()")fun beforeFunction(joinPoint: JoinPoint) {println("before function executed: $joinPoint")}@After("anyFunction()")fun afterFunction(joinPoint: JoinPoint) {println("after function executed: $joinPoint")}
}
运行结果
before function executed: execution(void com.code.kotlin.Good.doSomething())
doSomething
after function executed: execution(void com.code.kotlin.Good.doSomething())
优势分析

可以看到,简单引入和应用插件即可

AOP代码完全独立于原始代码,真正做到了代码解耦

非常适合对关键位置代码进行监听和修改的需求

注意事项

由于生成的代码依赖于Gradle插件

所以AOP规则修改后,如果代码没生效,可以尝试Reload一下Gradle脚本

另外,此插件和安卓编译插件,在实现方式上容易产生版本冲突

安卓项目需要使用AOP,建议使用其它插件,这个我们下一章会讲解

http://www.tj-hxxt.cn/news/56261.html

相关文章:

  • 国家职业资格证书网站厦门关键词排名seo
  • 厦门英文网站建设广东东莞疫情最新消息
  • 网页设计实验报告3000字批量优化网站软件
  • 三只松鼠网站建设中国舆情观察网
  • 推荐聊城做网站的公司在百度上打广告找谁推广产品
  • 做网站软件j电商seo是什么意思
  • 安居网站建设广告sem是什么意思
  • 做网站怎么设置会员html网页制作步骤
  • 专门做网站制作的公司郑州网站顾问
  • 网站定制文章列表项怎么做南宁网站公司
  • 新闻做的差的网站镇江seo优化
  • 上街做网站seo在中国
  • 网站建设数据库是什么网站建设公司官网
  • css 手机网站字体重叠seo博客网址
  • 论坛网站制作费用北京疫情最新情况
  • 长春哪家做网站便宜徐州seo网站推广
  • 做二手的网站有哪些网络营销推广方案案例
  • 做商城网站哪里好舆情网站直接打开怎么弄
  • 附近做网站的公司竞价推广员月挣多少
  • 自己做的网站如何连接入数据库台州优化排名推广
  • wordpress支持手机适应优化百度百科
  • 公司以前做的免费网站太多 新网站搜索不到百度竞价排名公司
  • 静安集团网站建设市场调研报告范文大全
  • 宁波哪里做网站的营销型企业网站制作
  • 学校网站建设建议营销型网站建设排名
  • 做网站的服务器很卡怎么办今日头条新闻10条
  • centos wordpress 建站教程合肥网络公司排名
  • 淘宝客网站建设任务chinaz站长素材
  • 三个小伙毕业了做购物网站的电视剧深圳网络营销技巧
  • 制作网站的公司怎么样爱站网长尾关键词