基础框架之Spring-AOP

AOP,Aspected Oriented Program,面向切面编程。

AOP是不同于OOP的一种编程思想,算是对OOP编程思想的扩充。

AOP为了实现什么?程序正常运行都有核心业务,最基本的核心业务就是增删改查,而在程序正常运行时,经常需要一些周边功能,比如性能统计、日志等,将这些周边功能和核心业务分离,就是AOP所需要做的事情。

如何理解切面?其实这里的切面应该是和核心业务本身所在的面对应的。在需要加入周边功能的地方,定义一个切点,当触发这个切点时,即进行切面上的操作。

切面实现代码:
1.定义业务类:ProductService

package com.myTest.service;
public class ProductService {
    public void doSomeService(){ 
        System.out.println("业务类。。。");
    }
     
}

2.定义切面业务类:日志
该类中在执行核心功能类之前和之后做了输出,并不影响核心功能的执行,即为切面业务。

package com.myTest.aspect;
import org.aspectj.lang.ProceedingJoinPoint;
public class LoggerAspect(){
      public Object log(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("start:" + joinPoint.getSignature().getName());
        //执行核心功能类
        Object object = joinPoint.proceed();
        System.out.println("end:" + joinPoint.getSignature().getName());
        return object;
    }
}

3.配置xml文件
配置xml文件通俗点说分为两步,第一是声明切入点,第二步是将切入点和切面对应起来。
整个逻辑就是在进行某个核心业务操作时,触发切入点,执行切面操作。
通过切入点和切面,将核心业务和周边功能编织起来。

	<!-- 业务类的对象 -->
    <bean name="s" class="com.myTest.service.ProductService">
    </bean>   
    <!-- 日志切面对象,代号为loggerAspect--> 
    <bean id="loggerAspect" class="com.how2java.aspect.LoggerAspect"/>
     <!-- 声明切入点pointcut,代号标记为loggerCutpoint-->
     <!-- expression表达式意为当执行expression表达式里面的操作时,即调用标记为loggercutpoint的切入点对应的切面-->
    <aop:config>
        <aop:pointcut id="loggerCutpoint"
            expression=
            "execution(* com.myTest.service.ProductService.*(..)) "/>
             
     <!--声明切面aspect,将切点和切面对应起来-->
        <aop:aspect id="logAspect" ref="loggerAspect">
            <aop:around pointcut-ref="loggerCutpoint" method="log"/>
        </aop:aspect>
    </aop:config>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值