美文网首页
Spring AOP

Spring AOP

作者: 农民工__乔Young | 来源:发表于2018-01-22 19:19 被阅读0次

    一、起源

        OOP只能解决层次结构,各种散布在各处的无关的代码被称为横切(cross-cutting)代码,
    在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用,于是诞生AOP。
        AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关
    系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本
    相似。Aop 的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。
    

    二、基本概念

        1、join point(连接点):一个程序执行中的一个精确执行点
        2、Point cut(切入点) :捕获一个连接点的结构
        3、advice(通知):是point cut 的执行代码,是执行aspect的具体逻辑
        4、aspect(切面):point out + advice
        5、introduce(引入):为对象引入附加的方法和属性,从而达到修改对象结构的目的
    

    推荐博客

    三、Spring AOP 注解实现

    1、Spring.XML文件配置
            <!-- 开启spring的注解 -->
            <context:annotation-config/>
            <!-- springIOC自动去扫描某个包下的javabean -->
            <context:component-scan base-package="com.wtu.spring.aop.annotation"/>
            
            <!-- 可以理解为让@Before @After...@Around  生效 -->
            <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
    2、注解标记
    @Aspect:一般使用在切面的类名上面,作用是指定该类为一个切面
    编写切面类(把横切关注点的代码抽象到切面的类中):
    一个一般的Java 类, 在其中添加要额外实现的功能,切面必须是 IOC 中的 bean
    @PointCut: 配置在目标对象的方法上面,标识该方法是一个切入点
    @Around @After @Before @After-returning @After-throwing : 
    execution(* UserDaoImpl.a*(..)):就是要告诉该方法要在哪个类哪个方法前/后/异常执行
    

    例子:

    切面
    切入点
    @Before、@After、@Around参考

    相关文章

      网友评论

          本文标题:Spring AOP

          本文链接:https://www.haomeiwen.com/subject/didraxtx.html