错误日志

在使用aop的注解切入时…

  • 引入jar包

    • <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId>
      </dependency>
      
  • 创建切面类

    • import com.github.pagehelper.Page;
      import com.github.pagehelper.PageHelper;
      import org.aspectj.lang.ProceedingJoinPoint;
      import org.aspectj.lang.annotation.*;
      import org.springframework.stereotype.Component;
      import org.springframework.web.context.request.RequestContextHolder;
      import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;//标注是一个aop
      @Aspect
      @Component
      public class MyAop {//切入点设置设置注解@Pointcut("@annotation(com.xhlin.annotation.PageX)")public void point(){}// 环绕通知@Around("point()")public Object around(ProceedingJoinPoint pjp) throws Throwable {System.out.println("环绕前");ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();String pageNum = request.getParameter("pageNum");String pageSize = request.getParameter("pageSize");if (pageSize !=null && pageNum!= null){int page_num = Integer.valueOf(pageNum);int page_size = Integer.valueOf(pageSize);PageHelper.startPage(page_num,page_size);}Object proceed = pjp.proceed();if (proceed instanceof Page){proceed = (Page) proceed;}System.out.println("环绕后");return proceed;}}
      
  • 创建注解类

    • import java.lang.annotation.*;@Target({ElementType.METHOD})
      @Retention(RetentionPolicy.RUNTIME)
      @Documented
      public @interface PageX {}
      
  • 在要被调用的方法上面添加注解

    • import java.util.List;public interface UserExcelService {@PageXList<UserExcel> selects();
      }
      

开启程序…

运行结果…

咦?为什么aop没有生效?

检查代码发现,如果你使用的是 controller->service->mapper 在接口中定义的方法添加注解,我们的aop在容器中找注解时会找不到,因为service接口没有注入到spring ioc中

修改代码:把注解移到mapper接口中的方法。(因为@mapper注释了mapper接口,这个@mapper注解会被用于spring和mybatis链接的@MapperScan扫描)

使用注解作为AOP的切入点(@Pointcut)相关推荐

  1. Spring AOP中切入点@Pointcut的使用

    切入点@Pointcut的使用 在确定切面aspect之后,需要在切面上确定切入点pointcut 定义 注解@pointcut("{切入点}") 其中{切入点}格式如下: exe ...

  2. Spring AOP切入点@Pointcut -- execution表达式

    Spring AOP 切入点@Pointcut – execution表达式 表达式示例 execution(* com.sample.service.impl..*.*(..)) 详述: execu ...

  3. 基于注解的 AOP 配置

    基于注解的 AOP 配置 bean.xml <?xml version="1.0" encoding="UTF-8"?> <beans xml ...

  4. 十、springboot注解式AOP(@Aspect)统一日志管理

    springboot注解式AOP(@Aspect)统一日志管理 简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功 ...

  5. Spring核心部分之AOP,aspectJ框架实现AOP,切入点表达式

    1. 面向切面编程(Aspect Oriented Programming,AOP) AOP:以切面为核心,确定切面的执行时间以及执行位置,底层实现是动态代理. AOP的作用:①在不改动源代码的情况下 ...

  6. SpringAOP描述及实现_AspectJ详解_基于注解的AOP实现_SpringJdbcTemplate详解

    AOP AOP特点: 面向切面编程, 利用AOP对业务逻辑的各个部分进行抽取公共代码, 降低耦合度, 提高代码重用性, 同时提高开发效率. 采取横向抽取, 取代传统纵向继承体系重复性代码 解决事务管理 ...

  7. 【Spring AOP】基于注解的 AOP 编程

    Spring AOP 基于注解的 AOP 编程的开发 开发步骤 切入点复用 切换动态代理的创建方式(JDK.Cglib) AOP 开发中的一个坑(业务方法互相调用) AOP 知识总结 更多内容请查看笔 ...

  8. .Net转Java自学之路—Spring框架篇二(IOC注解、AOP)

    Spring的Bean操作(注解方式): 注解:代码中特殊的标记,使用注解可以完成相关功能. @注解名称(属性名称=属性值) 注解可以使用在类.方法.属性上面. 主要用途:可以替代配置文件来创建对象和 ...

  9. java aop注解日志记录_springMVC自定义注解,用AOP来实现日志记录的方法

    需求背景 最近的一个项目,在项目基本完工的阶段,客户提出要将所有业务操作的日志记录到数据库中,并且要提取一些业务的关键信息(比如交易单号)体现在日志中. 为了保证工期,在查阅了资料以后,决定用AOP+ ...

最新文章

  1. 美国AI博士指出,自学Python到底能做什么
  2. 距离和相似性度量方法
  3. java怎么修改会员信息_JavaWeb用户信息管理系统-修改用户操作的实现
  4. torch_geometric 笔记:TORCH_GEOMETRIC.UTILS(更新中)
  5. MyBatis-23MyBatis缓存配置【二级缓存】
  6. MD5计算,一个扩展类,哪里都能用
  7. 字节内部自动化测试培训资料,明年涨薪用得上
  8. 软工视频(33~36)-用户界面设计
  9. Intent与intent-filter
  10. scara机器人动荷载_揭密SCARA机器人
  11. 物质环境、符号还是认知模型?——谈韩礼德、马丁、范迪克的语境观
  12. 计算机音频接口,一台计算机的两个音频输出
  13. mppdb 查看建表语句_内存MPP数据库介绍.pptx
  14. 用计算机制作程序框图,如何制作工艺流程图 电脑绘制工艺流程图方法
  15. 支付宝五福java_2021年集支付宝五福攻略 一个账号一天最少扫到10张+ 扫一轮下来 基本要啥福有啥福!...
  16. 菜鸟柳--23种设计模式初学记录笔记(二)装饰者设计模式
  17. ip地址转换数字函数 iton_3. IP地址转换函数
  18. 如何做一个好的lead
  19. (imdb数据集)电影评论分类实战:二分类问题
  20. itext对pdf文件进行多钱张及多页图片签章

热门文章

  1. 2017-2022年工作经验总结
  2. [RK3288][Android6.0] 调试笔记 --- ECHI上的USB Camera无法打开
  3. 一个简单的数据查询到前端展示总结
  4. 游戏角色ai的实现方式讨论
  5. JavaScript遍历二维数组
  6. 如何用代码实现图片,音频视频的复制粘贴
  7. C#文字转换语音朗读或保存MP3、WAV等格式
  8. Ubuntu连接上海大学校园网(ShuWlan-1x Shu(For All))
  9. 【vue2项目实战】---- 1.项目准备
  10. pny 魔豆系列4G U盘 测速