欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

spring AOP @Around @Before @After 区别,@around@before,此段小代码演示了spri

来源: javaer 分享于  点击 8319 次 点评:136

spring AOP @Around @Before @After 区别,@around@before,此段小代码演示了spri


此段小代码演示了spring aop中@Around @Before@After三个注解的区别@Before是在所拦截方法执行之前执行一段逻辑。@After是在所拦截方法执行之后执行一段逻辑。@Around是可以同时在所拦截方法的前后执行一段逻辑。

[Java]代码

package com.itsoft.action;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.stereotype.Controller;/** *  * @author zxf * 演示aop测试类 */@Controllerpublic class UserAction {    public void queryUsers(){        System.out.println("查询所有用户【all users list】");    }    public static void main(String[] args) {        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("application-aop.xml");        UserAction userAction = (UserAction)ctx.getBean("userAction");        userAction.queryUsers();        ctx.destroy();    }}

[Java]代码

package com.itsoft;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;/** *  * @author Administrator * 通过aop拦截后执行具体操作 */@Aspect@Componentpublic class LogIntercept {    @Pointcut("execution(public * com.itsoft.action..*.*(..))")    public void recordLog(){}    @Before("recordLog()")    public void before() {        this.printLog("已经记录下操作日志@Before 方法执行前");    }    @Around("recordLog()")    public void around(ProceedingJoinPoint pjp) throws Throwable{        this.printLog("已经记录下操作日志@Around 方法执行前");        pjp.proceed();        this.printLog("已经记录下操作日志@Around 方法执行后");    }    @After("recordLog()")    public void after() {        this.printLog("已经记录下操作日志@After 方法执行后");    }    private void printLog(String str){        System.out.println(str);    }}

演示@Around @Before @After 区别

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xmlns:aop="http://www.springframework.org/schema/aop"      xmlns:context="http://www.springframework.org/schema/context"      xsi:schemaLocation="       http://www.springframework.org/schema/context       http://www.springframework.org/schema/context/spring-context-3.0.xsd       http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd       http://www.springframework.org/schema/aop        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">    <context:annotation-config />    <context:component-scan base-package="com.itsoft"/>    <aop:aspectj-autoproxy /></beans>
相关栏目:

用户点评