一、实现接口并重写方法

实现org.aopalliance.intercept.MethodInterceptor接口,这是AOP Alliance规范中的接口,Spring AOP支持它。这种方式比较适合需要非常细粒度控制的场景。

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation; public class LoggingInterceptor implements MethodInterceptor { @Override
public Object invoke(MethodInvocation invocation) throws Throwable {
System.out.println("Before method: " + invocation.getMethod().getName());
try {
Object result = invocation.proceed(); // 继续执行被拦截的方法
return result;
} finally {
System.out.println("After method: " + invocation.getMethod().getName());
}
}
}

在spring配置中,将此拦截器注册到切面中

<aop:config>
<aop:aspect id="loggingAspect" ref="loggingInterceptor">
<aop:pointcut id="serviceMethods" expression="execution(* com.example.service.*.*(..))"/>
<aop:around method="invoke" pointcut-ref="serviceMethods"/>
</aop:aspect>
</aop:config> <bean id="loggingInterceptor" class="com.example.aspect.LoggingInterceptor"/>

二、通过注解方式(以环绕通知为例)

@Aspect
@Component
public class LoggingAspect { @Around("execution(* com.example.service.*.*(..))")
public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("Before method: " + joinPoint.getSignature().getName());
try {
Object result = joinPoint.proceed();
return result;
} finally {
System.out.println("After method: " + joinPoint.getSignature().getName());
}
}
}

aop的两种配置方法的更多相关文章

  1. visualvm远程监控jvm两种配置方法

    参考:http://blog.itpub.net/17203031/viewspace-765810 一.Jstatd RMI远程监控方法 VisualVM在监控本地JVM的时候是很方便的.只要应用程 ...

  2. (一)spring aop的两种配置方式。

    sring aop的方式有两种:(1)xml文件配置方式(2)注解的方式实现,我们可以先通过一个demo认识spring aop的实现,然后再对其进行详细的解释. 一.基于注解的springAop配置 ...

  3. servlet两种配置方法详解

     1.web.xml中Servlet的注解 <servlet> <!-- servlet的内部名称,自定义 --> <servlet-name>DemoAction ...

  4. spring AOP的两种配置方式

    连接点(JoinPoint) ,就是spring允许你是通知(Advice)的地方,那可就真多了,基本每个方法的前.后(两者都有也行),或抛出异常是时都可以是连接点,spring只支持方法连接点.其他 ...

  5. spring AOP的两种配置

    xml配置 定义要被代理的方法的接口 public interface TestAop { public void print(String s); } 实现上述接口 public class Tes ...

  6. java:comp/env/jdbc/ 的两种配置方法

    1. 在 META-INF 下建立文件: context.xml <?xml version="1.0" encoding="UTF-8"?> &l ...

  7. TestLink学习三:发送邮件的两种配置方法

    第一种:修改config.inc.php中的[smtp],配置为默认本地发送,用hotmail用户做接收,调试成功!(本人未尝试这种) // ----------------------------- ...

  8. springmvc两种配置方法

    基于配置文件xml方式, 配置springmvc步骤: 1.在pom文件中引入jar包: <!--导入springmvc的jar包--> <dependency> <gr ...

  9. 学习JavaWeb aop两种配置方式

    aop aop:面向切面编程,它可以解决重复代码. aop有两种方式: 一..xml方式 1.在springmvc-servlet.xml中配置aop,应用bean文件: <!--aop配置-- ...

  10. springmvc配置AOP的两种方式

    spingmvc配置AOP有两种方式,一种是利用注解的方式配置,另一种是XML配置实现. 应用注解的方式配置: 先在maven中引入AOP用到的依赖 <dependency> <gr ...

随机推荐

  1. docker-compose搭建的Mysql主主复制

    注意下面几点: 1)要保证同步服务期间之间的网络联通.即能相互`ping`通,能使用对方授权信息连接到对方数据库(防火墙开放3306端口). 2)关闭selinux. 3)同步前,双方数据库中需要同步 ...

  2. ubuntu安装 vmware workstation pro 15.1.1

    BIOS开启虚拟化 如果没有就参考下面的连接地址设置 http://robotrs.lenovo.com.cn/ZmptY2NtYW5hZ2Vy/p4data/Rdata/Rfiles/726.htm ...

  3. Ubuntu的apt-get/yarm/wget命令详解

    目录 一.查看本机是否安装软件 二.apt-get 三.yum 四.wget apt-cache和apt-get是apt包的管理工具, 他们根据/etc/apt/sources.list里的软件源地址 ...

  4. nmcli device status状态为unmanaged

    遇到报错:(device lo not available because device is strictly unmanaged) nmcli device status 查看设备状态 nmcli ...

  5. PPO近端策略优化玩cartpole游戏

    这个难度有些大,有两个policy,一个负责更新策略,另一个负责提供数据,实际这两个policy是一个东西,用policy1跑出一组数据给新的policy2训练,然后policy2跑数据给新的poli ...

  6. 降本提效 | AIRIOT设备运维管理解决方案

      传统运维多是使用在本地化系统,以人工运维和独立系统执行运维工作,重点关注的是设施运行,存在以下几个问题:   1.信息孤岛:本地化系统的接口不同,功能单一独立,各个系统之间的数据无法对接.交互,形 ...

  7. mysql命令最新

    查看授权 mysql> select user,host from mysql.user; +--------+------------+ | user | host | +--------+- ...

  8. vue3.4中KeepAlive的一个bug

    KeepAlive可以缓存组件,在不使用include时没有任何问题,可以正常缓存. 但是一旦使用了include,如果动态组件中没有导入ref函数,缓存功能就消失了 比如 editcom.vue & ...

  9. deeplearning4j训练MNIST数据集以及验证

    训练模型官方示例 MNIST数据下载地址: http://github.com/myleott/mnist_png/raw/master/mnist_png.tar.gz GitHub示例地址: ht ...

  10. Istio(四):创建部署Gateway并使用网关暴露服务

    目录 一.模块概览 二.系统环境 三.Gateway网关 3.1 使用 Gateway 四.实战:使用Gateway发布服务 4.1 创建部署并使用网关暴露 4.2 清理 一.模块概览 在Kubern ...