springboot 集成aop模块

aop 是spring的核心之一,在springboot之前,使用AOP已经相对比较多了,主要在开发中用于实现日志记录,安全校验,权限等功能。

 在springboot把Spring的核心功能都简化使用之后,aop的配置并没有太大的变化,基本还是原来的使用。

 我们做系统增强,分为前增强,后增强,环绕增强 三种基本类型,当然我看还有一些实现了return 增强之类的,本质上都一样的。

 Springboot通过@Aspect注解来实现aop 的功能。我们在使用的时候,需要在类上面声明好这个注解。

 同时,也要定义切点,切面这些功能。

 比如 ,通过@Pointcut来定义切点
     @Pointcut("execution(public * com.example.demo.controller.*.*(..))")
   public void webLog(){

    }

     指定com.example.demo.controller包下面的所有方法都要被增强。

          @Before("webLog()")
    public void doBeforeAdvice(JoinPoint joinPoint){
    System.out.println("我是前置通知!!!");
    //获取目标方法的参数信息
    Object[] obj = joinPoint.getArgs();
    //AOP代理类的信息
            }

            @After("webLog()")
   public void doAfterAdvice(JoinPoint joinPoint){

    System.out.println("后置通知执行了!!!!");
   }

         @Around("execution(*        com.zkn.learnspringboot.web.controller..*.testAround*(..))")
public Object doAroundAdvice(ProceedingJoinPoint proceedingJoinPoint){
    System.out.println("环绕通知的目标方法名:"+proceedingJoinPoint.getSignature().getName());
    try {//obj之前可以写目标方法执行前的逻辑
        Object obj = proceedingJoinPoint.proceed();//调用执行目标方法
        return obj;
    } catch (Throwable throwable) {
        throwable.printStackTrace();
    }
    return null;
}

原文地址:https://blog.51cto.com/chenhva/2398380

时间: 2024-08-30 17:27:30

springboot 集成aop模块的相关文章

SpringBoot—集成AOP详解(面向切面编程Aspect)

AOP介绍 AOP概述 ??AOP是Aspect-Oriented Programming,即为面向(切面)方面编程.在维基百科中的解释:Aspect是一种新的模块化机制,用来描述分散在对象.类或函数中的横切关注点.从关注点中分离出横切关注点是面向切面的程序设计核心概念.分离关注点使得解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑代码不需要再包含针对特定领域问题代码的调用,比如一些公用模块的日志.安全等代码. ??代码通过切面抽离,更加整齐和清晰,将重复的代码抽取出来单独的进行维护,在需要

springboot集成AOP管理日志

如何将所有的通过url的请求参数以及返回结果都输出到日志中? 如果在controller的类中每个方法名都写一个log输出肯定是不明智的选择. 使用spring的AOP功能即可完成. 1. 在pom.xml中添加aspect依赖包. <!-- aop --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop<

SpringBoot ------ 使用AOP处理请求

一.AOP统一处理请求日志 1.spring的两大核心:AOP ,  IOC 2.面向对象OOP关注的是将需求功能垂直,划分为不同的,并且相对独立的,   会封装成良好的类,并且类有属于自己的行为. 3.AOP则利用的是一种横切的技术,将面向对象构建的强大的类的体系,进行水平的切割:  并且将那些会影响到多个类的公共行为封装成一个可重用的模块.这个模块称为切面. 4.AOP的关键思想就是:将通用逻辑从业务逻辑中分离出来. 5.结合处理请求打印日志这两种需求来观察这两种思想怎么从垂直和水平来划分的

SpringBoot+Mybatis多模块(module)项目搭建教程

一.前言 最近公司项目准备开始重构,框架选定为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程. 1.开发工具及系统环境 IDE:IntelliJ IDEA 系统环境:mac OSX 2.项目目录结构 biz层:业务逻辑层 dao层:数据持久层 web层:请求处理层 二.搭建步骤 1.创建父工程 ① IDEA 工具栏选择菜单 File -> New -> Project... ② 选择Spring Initializr,Initializ

利用springboot创建多模块项目

本文旨在用最通俗的语言讲述最枯燥的基本知识 最近要对一个不大不小的项目进行重构,用spring觉得太过于繁琐,用cloud又有觉得过于庞大,维护的人手不够:权衡之下,最终选了springboot作为架子,但是因为项目涉及的业务模块较多,各个模块之间的业务交流不是很多,相对独立,因此想着把项目做成多模块的形式,模块之间可以独立部署,又可以互相调用,满足需求,故而花了点时间,搭了个springboot多模块的架子. 文章提纲: 多模块的创建 关键配置 温馨提示 1. 根模块的创建 springboo

SpringBoot集成gRPC微服务工程搭建实践

前言本文将使用Maven.gRPC.Protocol buffers.Docker.Envoy等工具构建一个简单微服务工程,笔者所使用的示例工程是以前写的一个Java后端工程,因为最近都在学习微服务相关的知识,所以利用起来慢慢的把这个工程做成微服务化应用.在实践过程踩过很多坑,主要是经验不足对微服务还是停留在萌新阶段,通过本文记录创建微服务工程碰到一些问题,此次实践主要是解决以下问题: 如何解决.统一服务工程依赖管理SpringBoot集成gRPC管理Protocol buffers文件使用En

SpringBoot集成Zipkin实现分布式全链路监控

目录 Zipkin 简介 Springboot 集成 Zipkin 安装启动 zipkin 版本说明 项目结构 工程端口分配 引入 Maven 依赖 配置文件.收集器的设置 编写 Controller 发送请求进行测试 Springboot 启动类 运行分析 核心概念 Zipkin 简介 Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency proble

SpringBoot集成Shiro 实现动态加载权限

一.前言 本文小编将基于 SpringBoot 集成 Shiro 实现动态uri权限,由前端vue在页面配置uri,Java后端动态刷新权限,不用重启项目,以及在页面分配给用户 角色 . 按钮 .uri 权限后,后端动态分配权限,用户无需在页面重新登录才能获取最新权限,一切权限动态加载,灵活配置 基本环境 spring-boot 2.1.7 mybatis-plus 2.1.0 mysql 5.7.24 redis 5.0.5 温馨小提示:案例demo源码附文章末尾,有需要的小伙伴们可参考哦 ~

SpringBoot快速上手——《二》:SpringBoot集成SSM,实现增删改查功能

SpringBoot集成SSM,实现增删改查功能 github源码:https://github.com/xivinChen/SpringBoot 一.先介绍创建模块的另一种方式 1.点击Maven -> 勾选Create from archetype -> 选择 maven-archetype-quickstart 有时会需要点击 自动导入 2.工程目录 可以看到,这样创建的模块是相对干净的,需要我们手动的编写程序启动入口类.需要配置时还得创建配置文件.下一步见证. 3.完善模块 添加依赖,