本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,java大神匠心打造,零基础java开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2021-05(18)

2021-06(45)

2021-07(8)

2021-08(59)

2021-09(44)

AOP完全注解开发AspectJ_2

发布于2021-05-29 23:48     阅读(66)     评论(0)     点赞(8)     收藏(4)


1.将业务逻辑组件和切面类都加入容器中,告诉Spring哪个是切面类@Aspect

2.在切面上的每一个方法加入通知注解,何时何地运行
@Pointcut,@Before,@After,@AfterReturning,@AfterThrowing,@Around

3.开启注解的Aop模式@EnableAspectJAutoProxy

Aop

在这里插入图片描述

1.业务类

MathAop1.java

public class MathAop1 {
    public Integer add(int i, int j){
        return i + j;
    }
}

2.添加的业务类

log.java

@Aspect//告诉Srping当前类是一个切面类
public class Log {
    @Pointcut("execution(public Integer com.Zjy.aop.MathAop1.*(..))")
    public void pointCut(){}

    @Before("pointCut()")
    public void logStart(JoinPoint joinPoint){
        System.out.println(joinPoint.getSignature().getName() + "开始");
    }
    @After("pointCut()")
    public void logEnd(JoinPoint joinPoint){
        Object[] args = joinPoint.getArgs();
        System.out.println(joinPoint.getSignature().getName() + "结束" + Arrays.toString(args));
    }
    @AfterReturning("pointCut()")
    public void logReturn(){
        System.out.println("正常返回");
    }
    @AfterThrowing("pointCut()")
    public void logException(){
        System.out.println("异常");
    }

    @Around("pointCut()")
    public void test(){
        System.out.println("环绕");
    }
}

3.配置类

MainConfigAop .java

@Configuration
//开启Aop
@EnableAspectJAutoProxy
public class MainConfigAop {
    //业务逻辑类加入容器
    @Bean
    public MathAop1 mathAop1(){
        return new MathAop1();
    }
    //切面类加入容器,必须告诉那个是切面类
    @Bean
    public Log log(){
        return new Log();
    }
}

4.test

    @Test
    public void test3(){
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MainConfigAop.class);
        MathAop1 bean = context.getBean(MathAop1.class);
        bean.add(1,2);
        context.close();
    }

在这里插入图片描述

5.说明

1.写业务类
2.写配置文件需要加入@Bean注解
3.写加入的业务类log
4.log中的注解有@Pointcut,@Before,@After,@AfterReturning,@AfterThrowing,@Around
在添加的业务类上需要添加@Aspect注解,表示这个是切面类
5.配置类上需要添加@EnableAspectJAutoProxy注解,开启注解的Aop模式

原文链接:https://blog.csdn.net/qq_43141726/article/details/117366222



所属网站分类: 技术文章 > 博客

作者:黑暗之神

链接:http://www.javaheidong.com/blog/article/207864/ea7d28b0b06f6fb44d9f/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

8 0
收藏该文
已收藏

评论内容:(最多支持255个字符)