spring-自定义AOP面向切面注解--统一切面处理-登陆信息采集

这篇具有很好参考价值的文章主要介绍了spring-自定义AOP面向切面注解--统一切面处理-登陆信息采集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2023华为OD统一考试(A+B卷)题库清单-带答案(持续更新)or2023年华为OD真题机考题库大全-带答案(持续更新)

1. 先写一个登陆记录注解(//记录:XXX时间,XXX姓名,XX系统,登录成功)

@Target(ElementType.METHOD) //作用用方法上
@Retention(RetentionPolicy.RUNTIME)//在运行时可用
public @interface LoginRecords {
    String value();
}

2. 写一个切面对注解进行处理(业务逻辑处理,记录登陆的信息)

@Aspect
@Component
public class logLoginInfo {

    //针对LoginRecords注解
    @Pointcut("@annotation(com.example.jobtest.aspect.annotion.LoginRecords) && execution(* *(..))")
    public void loginRecordsPointcut() {
    }


    @Around("loginRecordsPointcut()")
    public void logLoginInfo(ProceedingJoinPoint joinPoint){
        try {
            //登陆人信息
            LoginInfo info = (LoginInfo) joinPoint.getArgs()[0];
            //先获取登陆结果信息,走完登录流程
            ResultVo resultVo = (ResultVo) joinPoint.proceed();
            String nowTime = nowTime("yyyy-MM-dd HH:mm:ss");
            //记录:XXX时间,XXX姓名,XX系统,登录成功
            MethodSignature signature = (MethodSignature) joinPoint.getSignature();
            Method method = signature.getMethod();
            LoginRecords annotation = method.getAnnotation(LoginRecords.class);
            String systemType = annotation.value();
            //业务处理,插入记录表中
            //{........}
            System.out.println(nowTime + ":" + info.getName()+"在" + systemType +"系统" + resultVo.getData().toString());
        } catch (Throwable e) {
            throw new RuntimeException(e);
        }
    }

    public String nowTime(String regex){
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(regex);
        String nowTime = now.format(formatter);
        return nowTime;
    }

}

3.写一个登录的控制类,这里有asystemlogin跟bsystemlogin 用来区分注解的参数

@RestController
public class Login {
    @PostMapping("/asystemlogin")
    @LoginRecords("asystemlogin")
    public ResultVo checkAsystemlogin(@RequestBody LoginInfo loginInfo){
        ResultVo resultVo;
        if (loginInfo.getName().equals("axiaoyi") && loginInfo.getPwd().equals("aini")){
            resultVo = ResultVo.builder()
                    .code("200")
                    .data("登陆成功")
                    .build();
        }else {
            resultVo = ResultVo.builder()
                    .code("500")
                    .data("登陆失败")
                    .build();
        }
        return resultVo;
    }

    @PostMapping("/bsystemlogin")
    @LoginRecords("bsystemlogin")
    public ResultVo checkBsystemlogin(@RequestBody LoginInfo loginInfo){
        ResultVo resultVo;
        if (loginInfo.getName().equals("bxiaoyi") && loginInfo.getPwd().equals("aini")){
            resultVo = ResultVo.builder()
                    .code("200")
                    .data("登陆成功")
                    .build();
        }else {
            resultVo = ResultVo.builder()
                    .code("500")
                    .data("登陆失败")
                    .build();
        }
        return resultVo;
    }
}

4. 查看返回结果

spring-自定义AOP面向切面注解--统一切面处理-登陆信息采集,java知识,Spring SpringBoot SpringCloud,java,开发语言,spring,后端,idea

spring-自定义AOP面向切面注解--统一切面处理-登陆信息采集,java知识,Spring SpringBoot SpringCloud,java,开发语言,spring,后端,idea

spring-自定义AOP面向切面注解--统一切面处理-登陆信息采集,java知识,Spring SpringBoot SpringCloud,java,开发语言,spring,后端,idea

spring-自定义AOP面向切面注解--统一切面处理-登陆信息采集,java知识,Spring SpringBoot SpringCloud,java,开发语言,spring,后端,idea文章来源地址https://www.toymoban.com/news/detail-645569.html

到了这里,关于spring-自定义AOP面向切面注解--统一切面处理-登陆信息采集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring面向切面编程(AOP)

    AOP(Aspect Oriented Programming),即面向切面编程,利用一种称为\\\"横切\\\"的技术,剖开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为\\\"Aspect\\\",即切面。所谓\\\"切面\\\",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装

    2024年02月07日
    浏览(48)
  • Spring AOP:面向切面编程

    在软件开发中,我们经常会遇到一些横切关注点(cross-cutting concerns),如日志记录、事务管理和安全性等。这些关注点不属于特定的模块或类,而是横跨整个应用程序。传统的面向对象编程方法往往会将这些关注点与核心业务逻辑混杂在一起,导致代码的可读性和可维护性下

    2024年02月09日
    浏览(46)
  • Spring-aop面向切面

    1、理解必要的专业术语  先看看上面图,这是我的个人理解。(画的丑,主打真实)         1)Advice,通知/增强:类方法中提出来的共性功能(大白话就是提出来的重复代码)         2)Pointcut,切入点/切点:通知返回的方法         3)连接点:方法         4)织入:

    2023年04月15日
    浏览(94)
  • spring之面向切面:AOP(2)

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己成为更好

    2024年02月04日
    浏览(47)
  • Spring-AOP(面向切面)

    功能接口 实现类 在含有日志输出的实现类中可以了解到:与核心业务功能没有关系的日志输出加杂在模块中,对核心业务功能有干扰。 思路:解耦 , 将附加功能从业务功能模块中抽取出来 概念 二十三种设计模式中的一种,属于结构型模式,它的作用就是通过提供一个代理

    2024年02月16日
    浏览(42)
  • 注解 + spring aop切面+ SpringEl

    2024年02月09日
    浏览(48)
  • [SSM]Spring面向切面编程AOP

    目录 十五、面向切面编程AOP 15.1AOP介绍 15.2AOP的七大术语 15.3切点表达式 15.4使用Spring的AOP 15.4.1准备工作 15.4.2基于AspectJ的AOP注解式开发 15.4.3基于XML配置方式的AOP(了解) 15.5AOP的实际案例:事务处理 15.6AOP的实际案例:安全日志 IoC使软件组件松耦合。AOP让你能够捕捉系统中经

    2024年02月15日
    浏览(48)
  • 认识 spring AOP (面向切面编程) - springboot

    本篇介绍什么是spring AOP, AOP的优点,使用场景,spring AOP的组成,简单实现AOP 并 了解它的通知;如有错误,请在评论区指正,让我们一起交流,共同进步! 本文开始 AOP: 面向切面编程,也就是面向某一类编程,对某一类事情进行统一处理; spring AOP: 是实现了AOP这种思想的一

    2024年02月14日
    浏览(50)
  • Spring AOP(面向切面编程)和方法拦截

    Spring AOP(面向切面编程)和方法拦截 Spring是一款广泛使用的Java开发框架,提供了丰富的功能和工具,用于简化企业级应用程序的开发。其中一个重要的特性是面向切面编程(AOP)和方法拦截。本文将介绍Spring AOP和方法拦截的概念、工作原理以及在实际开发中的应用。 在软

    2024年02月05日
    浏览(45)
  • 切面的魔力:解密Spring AOP 面向切面编程

    目录 一、AOP简介 1.1 什么是AOP ? 1.2 什么是面向切面编程 ? 1.3 AOP 的特点 二、 AOP的基本概念解读 2.1 AOP的基本概念 2.2 AOP 概念趣事解读 三、代码情景演示 3.1 编写目标对象(超级英雄们正常的行动) 3.2 编写通知类 3.2.1 前置通知 3.2.2 后置通知 3.2.3 异常通知 3.2.4 环绕通知

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包