java在线学习-springAOP的基础原理和优点
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java在线学习-springAOP的基础原理和优点,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2764字,纯文字阅读大概需要4分钟。
内容图文
鲁班学院 java在线学习-springAOP的基础原理和优点
我们知道在OOP中模块化的关键单元是类,类封装了一类对象的行为和状态,当多个类有共同的属性和行为时候我们把这些共同的东西封装为一个基类,然后多个类可以通过继承基类的方式来复用这些共同的东西,如果子类需要定制基类行为则可以使用多态。
OOP中使用类来提供封装,继承,多态三个特性。
例如,当我们需要向多个不相关类的某些现有行为添加通用的非业务逻辑时,我们需要计算一些业务方法的执行时间。过去,我们需要计算耗时的行为。编写计算耗时的代码。在OOP中,分散在多个不涉及业务的类中的代码称为跨领域代码。这种方法在OOP中的缺点是会影响业务逻辑行为。计算耗时的代码干扰(业务逻辑行为应仅针对业务),第二个缺点是无法重复使用计算耗时的代码。
在AOP中,模块化单元是方面(Aspect),它将影响多个类的常见行为封装到可重用模块中,然后您可以决定何时拦截哪些类的行为(切点),并使用行为(通知)在封装的可重用模块中,以增强其拦截的业务行为,而无需修改业务模块的代码。该方面是对此的抽象描述。
AOP中有以下基础概念:
Joinpoint(连接点):程序执行期间的某一个点,例如执行方法或处理异常时候的点。在SpringAOP中,连接点总是表示方法的执行。
Advice(通知):通知是指一个切面在特定的连接点要做的事情。通知分为方法执行前通知,方法执行后通知,环绕通知等。许多AOP框架(包括Spring)都将通知建模为拦截器,在连接点周围维护一系列拦截器(形成拦截器链),对连接点的方法进行增强。
Pointcut(切点):一个匹配连接点(Joinpoint)的谓词表达式。通知(Advice)与切点表达式关联,并在切点匹配的任何连接点(Joinpoint)(例如,执行具有特定名称的方法)上运行。切点是匹配连接点(Joinpoint)的表达式的概念,是AOP的核心,并且Spring默认使用AspectJ作为切入点表达式语言。
Aspect(切面):它是一个跨越多个类的模块化的关注点,它是通知(Advice)和切点(Pointcut)合起来的抽象,它定义了一个切点(Pointcut)用来匹配连接点(Joinpoint),也就是需要对需要拦截的那些方法进行定义;它定义了一系列的通知(Advice)用来对拦截到的方法进行增强;
Targetobject(目标对象):被一个或者多个切面(Aspect)通知的对象,也就是需要被AOP进行拦截对方法进行增强(使用通知)的对象,也称为被通知的对象。由于在AOP里面使用运行时代理,所以目标对象一直是被代理的对象。
AOPproxy(AOP代理):为了实现切面(Aspect)功能使用AOP框架创建一个对象,在Spring框架里面一个AOP代理要么指JDK动态代理,要么指CgLIB代理。
Weaving(织入):是将切面应用到目标对象的过程,这个过程可以是在编译时(例如使用AspectJ编译器),类加载时,运行时完成。SpringAOP和其它纯JavaAOP框架一样,是在运行时执行植入。
Advisor:这个概念是从Spring1.2的AOP支持中提出的,一个Advisor相当于一个小型的切面,不同的是它只有一个通知(Advice),Advisor在事务管理里面会经常遇到,这个后面会讲到。
相比OOP,AOP有以下优点:
业务代码更加简洁,例如当需要在业务行为前后做一些事情时候,只需要在该行为前后配置切面进行处理,无须修改业务行为代码。
切面逻辑封装性好,并且可以被复用,例如我们可以把打日志的逻辑封装为一个切面,那么我们就可以在多个相关或者不相关的类的多个方法上配置该切面。
内容总结
以上是互联网集市为您收集整理的java在线学习-springAOP的基础原理和优点全部内容,希望文章能够帮你解决java在线学习-springAOP的基础原理和优点所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。