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

wordpress调用备案号如何优化关键词搜索排名

wordpress调用备案号,如何优化关键词搜索排名,排名好的网站建设,公司名字大全参考2022序 AOP是Aspect-Oriented Programming的缩写,中文翻译是面向切面编程。作为Spring的特征之一,是要好好学习的。 首先面向切面编程这个名称很容易让人想起面向对象编程(OOP)来。我们知道面向对象编程是从上往下的把系统拆分成若干个…

AOPAspect-Oriented Programming的缩写,中文翻译是面向切面编程。作为Spring的特征之一,是要好好学习的。

首先面向切面编程这个名称很容易让人想起面向对象编程(OOP)来。我们知道面向对象编程是从上往下的把系统拆分成若干个类,如Web项目中常见的ControllerServiceDao等分层。但是面向对象编程对于从左到右的水平抽象十分无力,类似于日志、权限等系统级功能的代码会重复的出现在任何地方。简单的说,面向切面编程是对面向对象编程的一种补充,它可以把系统里一些分散的重复代码集中在一起,抽象成一个切面。先来举一个例子:

有一个内部使用的管理系统,Controller中的每个接口在调用时都要记录下当前用户名称、当前时间等参数。

很明显这个需求的实现代码在每个接口中都是重复的。即使提取成公共类的公共方法,在每个接口里也都有一句该公共方法的调用,导致类之间的耦合。

接口流程图

我们希望把原来接口中的记录代码去除掉,使这些接口只关注自己的业务逻辑。然后使用预编译或运行期动态代理等方式实现在不修改接口代码的情况下,为接口添加记录功能。这种动态地将代码织入到类的指定方法、指定位置上的编程思想就是面向切面编程。

接口流程图(添加AOP)

概念

面向切面编程具体的一些概念。

《EXPERT ONE ON ONE J2EE DEVELOPMENT WITHOUT EJB》第8章、《Spring实战》第4章:
  • 增强(advice,另译为通知,但《Spring3.x企业应用开发实战》作者不赞成):在特定连接点执行的动作。例子中的实现代码就是增强。
  • 切点(pointcut):一组连接点的总称,用于指定某个增强应该在何时被调用。例子中的指定哪些接口和指定位置就是切点。
  • 连接点(join point):在应用执行过程中能够插入切面的一个点。例子中具体的一个接口和指定位置的结合就是连接点。
  • 切面(aspect):通知(即增强)和切点的结合。

AOPSpring中主要是通过动态代理实现的,具体实现也分为两种:JDK动态代理CGLIB动态代理。其中JDK动态代理是基于接口代理,CGLIB动态代理是基于继承代理。

JDK动态代理

作为Java自带的一种动态代理技术,JDK动态代理的优势是使用反射技术来生成代理类,在生成效率上比较高。缺点是只能基于接口来动态代理,如果目标类没有实现任何接口是不能使用JDK动态代理的。

来看一个用JDK动态代理的例子。

public class DynamicProxy implements InvocationHandler {/*** 被代理类*/private Object target;public DynamicProxy(Object target) {this.target = target;}public static Object bind(Object target) {InvocationHandler invocationHandler = new DynamicProxy(target);return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), invocationHandler);}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println(method.getName() + " 方法执行前");//执行被代理类方法Object ret = method.invoke(target, args);System.out.println(method.getName() + " 方法执行后");return ret;}public static void main(String[] args) {Dao dao = new OrderDao();dao.doSomeThing();Dao daoProxy = (Dao) DynamicProxy.bind(dao);daoProxy.doSomeThing();}}
public class OrderDao implements Dao {@Overridepublic void doSomeThing() {System.out.println("test");}}
public interface Dao {void doSomeThing();}
输出:
test
doSomeThing 方法执行前
test
doSomeThing 方法执行后Process finished with exit code 0

后记

这次只是梳理下概念,把自己理解的AOP概念写下来。也参考了很多文章,大体都是一致的细节上有些不同,把自己理解的写出来给大家看下就知道有没有错了。顺便整理一下,免得以后别人问起自己支支吾吾的不知道从哪说起。并没有去了解Spring中具体的AOP实现,有兴趣的同学可以自行深入了解下。

我的博客地址

参考资料

什么是面向切面编程AOP?

好书一起读(115):重学Spring之面向切面

http://www.lbrq.cn/news/2734579.html

相关文章:

  • 如何在服务器上做网站友情链接交易
  • 幼儿园学校网站建设作用宁德市自然资源局
  • 网站是哪个公司做的友情链接吧
  • 所有电商平台seo网站优化助理
  • 禹城网站定制杭州seo工作室
  • 广东建设信息网三库一免费seo培训
  • 营销型手机网站建设快速网站排名提升
  • 携车网网站开发怎么样windows优化大师官方免费
  • 网站建设服务费是否无形资产二十条优化措施
  • wordpress如何在首页不显示某类分类目录下的文章?seo网站推广教程
  • 广州做网站哪里有百度搜索结果
  • 什么大的网站是帝国cms做的优化方案官方网站
  • 做网站怎样写标题网络游戏推广怎么做
  • 什么网站可以做教师资格证的题中国去中心化搜索引擎
  • 任丘 做网站网络营销服务公司有哪些
  • 做企业网站域名七牛云
  • 广州互帮物流哪家公司做的网站seo服务价格表
  • 重庆企业建站模板贵州seo推广
  • 哈尔滨模板做网站培训网址大全
  • 做网站推广的流程真正的免费建站在这里
  • 上海专业高端网站建设服务器外贸推广具体是做什么
  • php网站培训机构企业做网站google下载官方版
  • 网站运营解决方案制作网站要花多少钱
  • 有哪些做兼职的网站武汉网站运营专业乐云seo
  • 微站和pc网站3000块钱在朋友圈投放广告
  • 如何建设一个苹果网站网站建立
  • 外贸电子网站企业网站设计制作
  • 做淘宝的网线可以浏览台湾网站吗seo排名优化软件
  • 网站建好后广告是不是需要搜索引擎优化方法总结
  • 电脑公司网站设计软文撰写
  • 【图论】分层图 / 拆点
  • MySQL 配置性能优化赛技术文章
  • 【php反序列化介绍与常见触发方法】
  • 【Python办公】Excel转json(极速版)-可自定义累加字段(如有重复KEY)
  • 自定义数据集(pytorchhuggingface)
  • 稳定且高效:GSPO如何革新大型语言模型的强化学习训练?