
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,程序员能够掌握的编程开发方式也在不断的增加,而今天我们就通过案例分析来了解一下,面向切面编程开发技术应用方法。
AOP
AOP的全称为AspectOrientedProgramming,译为面向切面编程。实际上AOP就是通过预编译和运行期动态代理实现程序功能的统一维护的一种技术。在不同的技术栈中AOP有着不同的实现,但是其作用都相差不远,我们通过AOP为既有的程序定义一个切入点,然后在切入点前后插入不同的执行内容,以达到在不修改原有代码业务逻辑的前提下统一处理一些内容(比如日志处理、分布式锁)的目的。
为什么要使用AOP
在实际的开发过程中,我们的应用程序会被分为很多层。通常来讲一个Java的Web程序会拥有以下几个层次:
Web层:主要是暴露一些RestfulAPI供前端调用。
业务层:主要是处理具体的业务逻辑。
数据持久层:主要负责数据库的相关操作(增删改查)。
虽然看起来每一层都做着全然不同的事情,但是实际上总会有一些类似的代码,比如日志打印和安全验证等等相关的代码。如果我们选择在每一层都独立编写这部分代码,那么久而久之代码将变的很难维护。所以我们提供了另外的一种解决方案:AOP。这样可以保证这些通用的代码被聚合在一起维护,而且我们可以灵活的选择何处需要使用这些代码。
AOP的核心概念
切面(Aspect):通常是一个类,在里面可以定义切入点和通知。
连接点(JointPoint):被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截的到的方法,实际上连接点还可以是字段或者构造器。
切入点(Pointcut):对连接点进行拦截的定义。
通知(Advice):拦截到连接点之后所要执行的代码,通知分为前置、后置、异常、终、环绕通知五类。
AOP代理:AOP框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以使JDK动态代理,也可以是CGLIB代理,前者基于接口,后者基于子类。
SpringAOP
Spring中的AOP代理还是离不开Spring的IOC容器,代理的生成,管理及其依赖关系都是由IOC容器负责,Spring默认使用JDK动态代理,在需要代理类而不是代理接口的时候,Spring会自动切换为使用CGLIB代理,不过现在的项目都是面向接口编程,所以JDK动态代理相对来说用的还是多一些。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。