09
2019
06

Spring AOP + PageHelper分页

  1. 增加依赖配置

     <groupId>org.aspectj</groupId>
     <artifactId>aspectjweaver</artifactId>
     <version>1.6.11</version>

     <groupId>org.aspectj</groupId>
     <artifactId>aspectjrt</artifactId>
     <version>1.6.11</version>

增加pagehelper

<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>4.1.0</version>
</dependency>
  1. 增加配置

    <context:component-scan base-package="com.example.controller"/>

    
      <!-- 启动对@AspectJ注解的支持 -->
      <aop:aspectj-autoproxy/>
    
    
      <!--启动springmvc注解-->
      <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" />
    
  2. 增加注解

    @Target({ElementType.PARAMETER, ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface EnablePaging {

       String value()  default "";

    }

  3. 增加AOP文件。

这里约定最后两个参数是pageNum 和pageSize

@Aspect
@Component
@Slf4j
public class PageAop {
 
   @Pointcut("@annotation(com.example.annotation.EnablePaging)")
    public void serviceAspect(){
        log.info("serviceAspect");
    }
 
    @Before("serviceAspect()")
    public  void doBefore(JoinPoint joinPoint) {
        log.info("doBefore");
    }
 
 
 
    @Around(value = "serviceAspect()")
    public Object doAround(ProceedingJoinPoint point) throws  Throwable{
        log.info("doAround ");
        Object[] args = point.getArgs();
        Integer pageNum = 1;
        Integer pageSize = 10;
        if(args.length >= 2){
            pageNum = (Integer)args[args.length -2];
            pageSize = (Integer)args[args.length - 1];
        }
        PageHelper.startPage(pageNum, pageSize);
        return  point.proceed(args);
    }
 
 
}
  1. Controller层

    @RequestMapping(value = "queryLogs")

     @EnablePaging
     @ResponseBody
     public  ServerResponse<PageInfo> queryLogs(HttpServletResponse response,
                                                       @RequestParam(value = "pageNum",defaultValue = "1") int pageNum,
                                                       @RequestParam(value = "pageSize",defaultValue = "10")int pageSize){
         List<Log> list =  iLogService.queryList(pageNum, pageSize);
         PageInfo pageInfo = new PageInfo(list);
         return ServerResponse.createBySuccess(pageInfo);
     }

本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。