环绕通知:
1.创建一个MyAroundAdvice.java
package cn.csdn.aop.advice;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class MyAroungAdvice implements MethodInterceptor {
@Override
public Object invoke(MethodInvocation arg0) throws Throwable {
System.out.println("around完成----登录到网站的操作。。。");
Object obj =arg0.proceed();
System.out.println("around完成----提示你注册成功。。。");
return obj;
}
}
2.创建一个接口CustormService.java
package cn.csdn.aop.service;
/**/
public interface CustormService {
//客户注册的方法,用户名,邮箱,密码
void register(String name,String Email,String Password);
}
3.创建一个CustormServiceImpl.java
package cn.csdn.aop.service;
//目标对象的类
public class CustormServiceImpl implements CustormService{
@Override
public void register(String name, String Email, String Password) {
System.out.println("---------用户在这里实现注册的功能..........");
}
}
4.该配置文件
<!-- 环绕通知的配置 -->
<bean id="myAroungAdvice" class="cn.csdn.aop.advice.MyAroungAdvice"></bean>
<bean id="custormServiceTarget" class="cn.csdn.aop.service.CustormServiceImpl"></bean>
<!-- 配置代理对象 -->
<bean id="custormServiceProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<!-- 指明你的代理接口 -->
<property name="proxyInterfaces">
<list>
<value>cn.csdn.aop.service.CustormService</value>
</list>
</property>
<!-- 指明拦截器的名称 -->
<property name="interceptorNames">
<list>
<value>myAroungAdvice</value>
</list>
</property>
<!-- 指明目标对象 -->
<property name="target">
<ref bean="custormServiceTarget"/>
</property>
</bean>
5.创建一个测试类App.java
package cn.csdn.aop.service;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
@Test
public void app(){
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:a*.xml");
CustormService d= (CustormService) ac.getBean("custormServiceProxy");
d.register("zhang", "670109809", "12345");
}
}
输出结果:
around完成----登录到网站的操作。。。
---------用户在这里实现注册的功能..........
around完成----提示你注册成功。。。
分享到:
相关推荐
本篇将详细探讨如何使用切入点匹配方法实现Spring AOP的环绕通知。 首先,理解AOP的核心概念: 1. 切面(Aspect):切面是关注点的模块化,它封装了横切关注点,如日志、事务等。 2. 连接点(Join Point):程序...
在Spring AOP(面向切面编程)中,我们可以通过注解配置来实现对目标方法的增强,例如前置通知、后置通知、环绕通知和异常通知。这些通知在特定的时机执行,提供了灵活的代码逻辑插入点。下面我们将详细探讨如何在...
在Spring AOP(面向切面编程)中,切面环绕通知是一种强大的机制,它允许我们在方法执行前后插入自定义的行为,比如记录日志、事务管理等。本篇将深入探讨如何利用Spring AOP的切面环绕通知来实现一个日志记录系统,...
环绕通知是Spring AOP的一个重要概念,它是对方法调用前后进行增强处理的最全面的方式。本文将深入探讨Spring中的环绕通知及其应用。 环绕通知是通过实现`org.aspectj.lang.ProceedingJoinPoint`接口来定义的。这个...
"声明环绕通知"是Spring AOP中的一个重要概念,它提供了在方法执行前后完全控制逻辑的能力。本文将深入探讨这一主题。 首先,让我们明确什么是环绕通知。环绕通知是Spring AOP五种通知类型中最强大的一种。与前置...
springMybatis,springmvc,环绕通知,时间转换,des,md5加密账户密码.拦截器
在Spring AOP中,有三种主要的通知类型:前置通知、后置通知和环绕通知。下面将详细解释这三种通知,并通过简单的代码示例进行演示。 **1. 前置通知(Before Advice)** 前置通知在目标方法被调用之前执行,但无法...
1、编写切面类,包含权限审核方法和日志记录方法,这两个方法将来会织入到...5、编写案例,运用Spring AOP技术,要求包含前置通知、后置通知、环绕通知、返回通知、异常返回通知。请掌握这五种通知的特点,及应用场景
在这个例子中,我们将深入探讨Spring AOP中的前置通知、后置通知以及环绕通知的实现方式。 前置通知(Before Advice)在目标方法执行前触发,通常用于执行验证、初始化等操作。在Spring AOP中,我们可以使用`@...
Spring,mybatis,SpringMvc,环绕通知,时间转换,静态页面变动态页面
本教程将深入探讨Spring AOP中的四种通知类型:前置通知、后置通知、环绕通知以及异常通知,并通过实际案例展示如何创建自定义切入点。 1. **前置通知**: 前置通知在目标方法执行前触发,通常用于执行验证或准备...
环绕通知是功能最强大的通知类型,它允许在方法调用前后执行自定义行为,并可以选择是否执行目标方法。环绕通知通过`@Around`注解实现,并需要返回一个`ProceedingJoinPoint`对象。例如: ```java @Aspect @...
Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大...
- **环绕通知(Around Advice)**: 这是最强大的通知类型,它允许你在方法执行前后完全控制流程。环绕通知可以决定方法是否被调用,何时被调用,甚至可以改变其返回值。Spring.NET中的`MethodInterceptor`接口用于...
内容概要:本文详细介绍了Spring中AOP(面向切面编程)的基础知识,重点讲述了五种常见的通知类型:环绕通知(@Around),前置通知(@Before),后置通知(@After),返回后通知(@AfterReturning)以及异常后通知(@...
在这个例子中,`ref="aroundAdviceBean"`指向我们的环绕通知类,`method="aroundAdvice"`指定了环绕通知的方法。 **总结** 通过Spring的XML配置,我们可以灵活地定义和实现AOP通知,包括前置、后置、返回后、异常...
环绕通知是功能最强大的通知类型,通常使用`@Around`注解来实现。 5. 引用通知(After (Finally) Advice): 不论目标方法正常执行还是抛出异常,都会执行的代码,类似于Java中的finally块。`@After`注解用于定义...
5. 环绕通知(@Around):最为强大,可以在方法执行前后都进行控制,可以决定是否执行目标方法。环绕通知相当于一个代理,可以自定义何时以及如何执行目标方法。通常需要手动调用`ProceedingJoinPoint`的`proceed()`...
环绕通知是在目标方法调用前后都会执行的通知类型,它是四种通知中最强大的一种,因为它不仅可以控制目标方法是否被调用,还可以完全控制返回值。要实现环绕通知,类需实现`MethodInterceptor`接口并实现`invoke`...
1. **环绕通知(Around)开始**:环绕通知首先执行,它包裹整个方法调用,通常通过`ProceedingJoinPoint`对象来决定何时调用目标方法。 2. **前置通知(Before)**:在环绕通知内部,然后执行前置通知。 3. **环绕...