首页 > 其他分享 >spring 切面aop实现

spring 切面aop实现

时间:2022-08-23 23:57:06浏览次数:45  
标签:spring value 切面 aop LogInfo LogInfoAspect public

切面层

@Aspect //作用是把当前类标识为一个切面供容器读取
@Component //把普通pojo实例化到spring容器中,相当于配置文件中的 <bean id="" class=""/>
public class LogInfoAspect {

   //value = "指向注解类" 用于调用切面功能 @Pointcut(value = "@annotation(com.main.entity.annotation.LogInfo)") public void LogInfoAspect(){ }

   //@Around:环绕增强,相当于MethodInterceptor
   //@AfterReturning:后置增强,相当于AfterReturningAdvice,方法正常退出时执行
   //@Before:标识一个前置增强方法,相当于BeforeAdvice的功能
//@AfterThrowing:异常抛出增强,相当于ThrowsAdvice
  //@After: final增强,不管是抛出异常或者正常退出都会执行
// 在这里定义前置切面
    @Before("LogInfoAspect()")
    public void beforeMethod(JoinPoint joinPoint) {

        // 这里执行保存日志的动作
        System.out.println("before .......");
        //得到被切方法的参数
        System.out.println(joinPoint.getArgs()[0]);
    }
}

 写一个注解

@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target(ElementType.METHOD)  //定义方法上
public @interface LogInfo {
    boolean value() default true;
}

Controller层

@LogInfo
    @RequestMapping(value = "/trrtt")
    public String trrtt(HttpServletRequest request, Model model) {
      return “success”
    }

 

标签:spring,value,切面,aop,LogInfo,LogInfoAspect,public
From: https://www.cnblogs.com/lwxfly/p/16618287.html

相关文章

  • springboot+mybatis-plus-join+mysql实现连表查询
    1.简介  Mybatis是目前比较主流的持久层框架,使用非常广泛。Mybatis-Plus是基于Mybatis增强工具包,越来越受到开发人员的喜爱。  在使用Mybatis-Plus开发时,简单的crud......
  • springmvc-配置文件
    web.xml<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan......
  • spring中的自动注入
    spring官方介绍IOC和DI的介绍ThischaptercoverstheSpringFrameworkimplementationoftheInversionofControl(IoC)principle.IoCisalsoknownasdependen......
  • java springboot 初体验 (十)对接ut
    上一篇javaspringboot初体验(九)对接http请求https://www.cnblogs.com/zwjvzwj/p/16614205.htmlpom文件添加依赖包<!--自动查找主类用于打包和jacoco的......
  • SpringMVC学习笔记
    SpringMVC1、SpringMVC简介1.1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。M:Model,模型层,指工程中的JavaBean,作用是处理数据。JavaBean分......
  • [Spring框架]AOP
    一、AOP概述1.什么是AOP?AOP:AspectOrientedProgramming,面向切面编程它将重复的代码抽取出来,使用动态代理技术,在不修改源码的基础上对已有的方法进行增强动态代理是......
  • springboot2.4.x websocket跨域问题
    1,springboot升级版本以后websocket连接出现以下错误java.lang.IllegalArgumentException:WhenallowCredentialsistrue,allowedOriginscannotcontainthespecialv......
  • 【SpringBoot 实战】数据报表统计并定时推送用户的手把手教程
    本文节选自《实战演练专题》【实战系列】数据报表统计并定时推送用户的手把手教程通过一个小的业务点出发,搭建一个可以实例使用的项目工程,将各种知识点串联起来;实......
  • Springboot/Springcloud为所有实体类创建一个共同的父类
    一、需求在设计数据库的时候每条数据基本上包含这么几个字段:主键ID,状态、创建者、创建时间、修改者、修改时间、是否逻辑删除......每个实体类都包含这么几个相同的的字......
  • 使用SpringBoot内置多线程
    SpringBoot使用多线程一概述1为什么使用多线程  在我们开发系统过程中,经常会处理一些好费时间的任务(如向数据库中插入上百万数据,将会导致系统阻塞),这个时候就会自然......