Aspect初体验

作者: z七夜 | 来源:发表于2018-07-05 14:58 被阅读2次

写在前面

需求:在一些方法中做一些通用的事,比如写日志,事务之类的,
1.写一个切面类
2.在配置文件中配置

坑:配置了切面,并没有进入切面

具体实现

1.切面类实现

@Aspect
@Component
public class LogAspect {

    private final Logger logger = LoggerFactory.getLogger( this.getClass() );
//"execution (* com.zhyl.core.web.control.AdminController.*(..))"
    /**
     * 前置通知
     * @param joinPoint 该参数可以获取目标对象的信息,如类名称,方法参数,方法名称等
     */
    @Before("execution(* jk.zmn.profile.controller.TestController.*(..))")
    public void before(JoinPoint joinPoint){
        System.out.println("我是前置通知");
    }

    @After("execution(* jk.zmn.profile.controller.TestController.*(..))")
    public void after(JoinPoint joinPoint){
        System.out.println("我是后置通知");
    }

    @Around("execution(* jk.zmn.profile.controller.TestController.*(..))")
    public Object systemLog(ProceedingJoinPoint pro) throws Throwable {

        long startTime = System.currentTimeMillis();
        //访问的类名
        String className = pro.getTarget().getClass().getName();
        //访问的方法名
        String methodName = pro.getSignature().getName();
        Object result = pro.proceed();
        long endTIme = System.currentTimeMillis();
        long time = endTIme - startTime;

        System.out.println("我是环绕通知"+className + methodName + "执行时间为:" +time);
        logger.info("loggggggggggggggggg" +className + "-" +methodName + "执行时间为:" +time);
        return result;

    }



}

2.在springmvc配置文件中配置


image.png

3.注意,有坑

上面的配置文件是配好的,本案例是在controller层做切面编程,不能把切面类配在spring的配置文件中,因为spring会把切面类放在spring的容器中, 那么springmvc就访问不到了,如果是在service层做切面编程,就可以把切面类配置在spring的配置文件中。

相关文章

  • Aspect初体验

    写在前面 需求:在一些方法中做一些通用的事,比如写日志,事务之类的,1.写一个切面类2.在配置文件中配置 坑:配置...

  • 2021-02-26nlp知识了解

    基本概念“aspect”aspect term、aspect category、aspect opinion、as...

  • Aspect

    AOP:通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP对业务处理过程中的切面进行提取,他...

  • aspect

    可以说是面向切面编程的典范了。1 aspect修改原来的类通过消息转发实现回调2 这三个哥们是集合,但是无论怎么搞...

  • yii初体验(7-15)

    yii初体验(7)视图 yii初体验(8)模块 yii初体验(9) 小部件widgets yii初体验(10) 前...

  • 2019-06-30 spring aop 1(spring a

    一,aop 术语 1.切面Aspect: Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包...

  • 4(AOP):Aspect(实例与讲解)(文末有项目连接)

    1:什么是Aspect切面 2: 引入相关POM包 3:Aspect设置切面 4:设置被Aspect 监视的代码 ...

  • Filter、Interceptor、Aspect

    filter、interceptor、aspect Filter过滤器 Interceptor拦截器 Aspect...

  • Mplayer纯数字播放命令

    若不能播放,则aspect调整比例,。 mplayer -vo aa -aspect 4:1。

  • Poverty of Aspect

    Karl Duncker一名认知研究员,创造了视角缺乏这一术语,是指一种局限性,即在问题上采取狭隘的而不是宽泛的看...

网友评论

    本文标题:Aspect初体验

    本文链接:https://www.haomeiwen.com/subject/bbdpuftx.html