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

网站备案格式网页制作素材模板

网站备案格式,网页制作素材模板,视频制作软件pr,口碑好的做网站前言 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.yayakq.cn/news/708876/

相关文章:

  • 宁夏考试教育网站iis7.5 网站配置
  • 海城市建设局网站长春做官网的公司
  • 深圳企业网站制作哪家好手机编辑个人简历
  • 精密科技东莞网站建设设计公司官网首页
  • 做网站使网页不居中福建省建设执业资格中心网站
  • 网站模板内容怎么改浙江+外贸网站建设
  • 重庆营销网站建设上海网站设计与制
  • 受欢迎的大连网站建设天眼查询企业信息官网下载
  • 网页设计属于什么行业类别山西谷歌seo
  • 珠海移动网站建设公司排名广东华星建设集团网站
  • 怎么推销自己的网站洛阳做网站那家好
  • 广东 品牌网站建设揭阳网站制作案例
  • 网站管理助手 伪静态整站优化外包服务
  • 呼市做网站网站配色 要用什么原则
  • 如何设计一个网页面板seo自学网免费
  • 企业建设网站的方式wordpress首页模板在哪
  • wordpress打开慢 cdn公司优化是什么意思
  • 有哪些好的做网站自己做名片的网站
  • 电子机箱网站建设报告外网视频网站做泥声控
  • 网站建设产品经理职责庆阳市建设局门户网站
  • 定制建站网站建设网页无法访问但是有网什么原因
  • 长春做网站优化的公司商务网站开发的基本原则
  • 钓鱼网站网址大全网站设计的内容有哪些
  • 网站搭建多少钱logo修改网站建设的英语怎么说
  • 单位网站维护 网站建设岗位国外科技网站欣赏
  • 旅游商城网站模板深圳工程造价建设信息网站
  • 有哪些管理系统seo关键词排名优化方法
  • 宁波模板建站源码杭州网站优化方案
  • 网站建设实习招聘河南郑州消费情况
  • 网上做设计的网站有哪些东营网站制作公司