关于spring切面的一点理解,记录一下

来源:互联网 发布:mac怎么连接vps 编辑:程序博客网 时间:2024/05/29 17:43

用的不深,简单的说一下我的理解。

我认为这个切面框架就是将逻辑代码与非逻辑代码分开的一个盒子。盒子中有几个部分,前边一个格子写log,最后后边一个格子写log,中间的格子写逻辑代码。

这样区分开的作用简化了代码量,就相当于我们所写的工具类一样,将log这种非逻辑的东西封装。与逻辑代码分别放在两个不同的文件中。然后利用spring的注册,在配置文件中,自动调用其中的某个方法,从而实现切面的概念。

所谓切面,就是相当于是一把 刀。而切面里边用到的expression 即为切点,切点可以想象成为萝卜与刀 接触的那个点。

大体的配置如下:

 <bean id="dubboPropUtil" class="com.caissa.erp.workflow.aop.DubboTransIDPropUtil" />

<aop:config>

     <aop:aspect ref="dubboPropUtil">

     <!-- 定义切面 -->

         <aop:pointcut id="dubboApiPointcut" expression="execution(* com.caissa.erp.workflow.export..*.*(..))"/>

         <!-- 建立切面与通知间的调用方法关系 -->

         <aop:around method="logRoundMethod" pointcut-ref="dubboApiPointcut"/>

     </aop:aspect>

  </aop:config>

首先注册一下这把 刀,然后再定义一下这个切 入点是哪儿~然后再配置一下以什么样的方式或者说是以什么样的方法切 下去。

public Object logRoundMethod(ProceedingJoinPoint pjp) throws Throwable{

log.info("所描述的日志说明(exss接口:)",“展示的日志文字(XXX方法被调用)”);

return pjp.proceed();

}

至此切面完成。

1 0
原创粉丝点击