黑马程序员技术交流社区

标题: 【上海校区】Spring实战+总结归纳:AOP导学图+实例 [打印本页]

作者: 不二晨    时间: 2019-4-8 13:41
标题: 【上海校区】Spring实战+总结归纳:AOP导学图+实例
一、思维导图


二、构建AOP步骤

1.导包:AOP,Aspect

        <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-aop</artifactId>
                        <version>${spring.version}</version>
                </dependency>
               
                <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-aspects</artifactId>
                        <version>${spring.version}</version>
                </dependency>
2.在Java配置文件中开启代理

@EnableAspectJAutoProxy
3.编写切面(包括切点和通知)

package com.yan.otl.main.aspect;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Component
@Aspect
public class LoginControllerAspect {
       
        @Pointcut("execution(* com.yan.otl.main.controller.LoginController.getUser(..))")
        public void getUser() {}
       
        @Before("getUser()")
        public void before() {
                System.out.println("---------------------前置通知");
        }
       
        @After("getUser()")
        public void after() {
                System.out.println("---------------------后置通知,返回通知和异常通知");
        }
       
        @AfterReturning("getUser()")
        public void afterReturning() {
                System.out.println("---------------------返回通知");
        }
       
        @AfterThrowing("getUser()")
        public void afterThrowing() {
                System.out.println("---------------------异常通知");
        }
}
4、输出结果

---------------------前置通知
com.yan.otl.main.data.User@6ad075e1
---------------------后置通知,返回通知和异常通知
---------------------返回通知


---------------------
【转载,仅作分享,侵删】
作者:醉花妍
原文:https://blog.csdn.net/qq_42214817/article/details/82698828
版权声明:本文为博主原创文章,转载请附上博文链接!


作者: 不二晨    时间: 2019-4-10 14:21
奈斯,感谢分享!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2