spring-aop 学习记录

spring-aop 学习记录

面向切面编程aspect oriented programming,实现对现有业务逻辑的非侵入式增强,如日志记录,权限管理的

aop concept

  • join point

    Join point is any point in your program such as method execution, exception handling, field access etc. Spring supports only method execution join point.

    程序中的任意点都可以作为切入点,例如方法执行、异常处理、字段获取……在spring中仅支持在方法执行加入切入点

  • advice

    Advice represents an action taken by an aspect at a particular join point.
    申明表示切面在指定切点发生的动作。

  • pointcut

    It is an expression language of AOP that matches join points.

    在aop中描述切入点

  • introduction

    It means introduction of additional method and fields for a type. It allows you to introduce new interface to any advised object.

    用于解释某种附加方法或字段,这将允许新的接口在任意申明类中被解释

  • target object

    It is the object i.e. being advised by one or more aspects. It is also known as proxied object in spring because Spring AOP is implemented using runtime proxies.

    被切面声明的类。由于spring aop通过动态代理实现,所以spring中通常是代理类

  • aspect

    It is a class that contains advices, joinpoints etc.

    切面包含申明、切入点等信息的类

  • interceptor

    It is an aspect that contains only one advice.

    拦截器是仅持有一个声明的切面

  • aop proxy

    It is used to implement aspect contracts, created by AOP framework. It will be a JDK dynamic proxy or CGLIB proxy in spring framework.

    由aop框架创建,用于实现切面连接。在spirng框架中采用jdk动态代理或cglib代理实现

  • weaving

    It is the process of linking aspect with other application types or objects to create an advised object. Weaving can be done at compile time, load time or runtime. Spring AOP performs weaving at runtime.

    织入是连接切面和其他应用类型或对象主动创建申明对象的过程。织入可能发生在编译、加载或运行期。spring aop织入发生在运行期

spring implements

spring-aop

xml配置文件如下

<bean name="hello" class="org.miku.bean.SpringTest">
    <property name="str" value="hello world!"/>
</bean>
<!--    spring-aop config-->
<bean id="aopBefore" class="org.miku.bean.MethodBeforeBean"/>
<bean id="aopAfter" class="org.miku.bean.MethodAfterBean"/>

<bean id="aoProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="target" ref="hello"/>
    <property name="interceptorNames">
        <list>
            <value>aopAfter</value>
            <value>aopBefore</value>
        </list>
    </property>
</bean>

关于ProxyFactoryBean中target表示被代理类,interceptorNames为List类型,表示在执行实际方法前经过的拦截器

拦截器定义如下

public class MethodBeforeBean implements MethodBeforeAdvice {
   
    public void before(Method method,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值