SpringMVC使用AOP

springMVC版本是4.3.7.RELEASE,pom.xml中添加AOP的依赖:

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-aop</artifactId>
	<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.aspectj</groupId>
	<artifactId>aspectjweaver</artifactId>
	<version>1.8.9</version>
</dependency>

在org.taian.web包下新建LogAspect.java

@Aspect
@Component
public class LogAspect {

	@Before("execution(* org.taian.web.Test1.*(..)) && !execution(* org.taian.web.Test1.getUsers())")
	public void log(){
		System.oug.println("before logs");
	}
}

在spring-web.xml配置文件中添加配置:

	<!-- AOP 注解方式 ;定义Aspect -->
    <!-- 激活组件扫描功能,在包"org.taian.web及其子包下面自动扫描通过注解配置的组件-->
    <context:component-scan base-package="org.taian.web"/>
    <!-- 启动AspectJ支持   只对扫描过的bean有效-->
    <aop:aspectj-autoproxy proxy-target-class="true" />

    @Before("execution(* org.taian.web.Test1.*(..)) && !execution(* org.taian.web.Test1.getUsers())") //该标签声明次方法是一个前置通知:在目标方法开始之前执行
    @After后置通知(无论方法是否发生异常都会执行,所以访问不到方法的返回值)
    @AfterReturning返回通知(在方法正常结束执行的代码),返回通知可以访问到方法的返回值!
    @AfterThrowing异常通知(方法发生异常执行的代码),可以访问到异常对象;且可以指定在出现特定异常时执行的代码
    @Around环绕通知(需要携带类型为ProceedingJoinPoint类型的参数),环绕通知包含前置、后置、返回、异常通知;ProceedingJoinPoin 类型的参数可以决定是否执行目标方法,且环绕通知必须有返回值,返回值即目标方法的返回值

    在execution表达之中可以使用逻辑判断,来实现方法的排除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值