work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Spring AOP + PageHelper分页

Posted on   work hard work smart  阅读(880)  评论(0编辑  收藏  举报

1、增加依赖配置

1
2
3
4
5
6
7
8
9
10
11
<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjweaver</artifactId>
  <version>1.6.11</version>
</dependency>
 
<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjrt</artifactId>
  <version>1.6.11</version>
</dependency>

  增加pagehelper

1
2
3
4
5
<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>4.1.0</version>
</dependency>

  

 

 

2、增加配置

1
2
3
4
5
6
7
8
<context:component-scan base-package="com.example.controller"/>
 
   <!-- 启动对@AspectJ注解的支持 -->
   <aop:aspectj-autoproxy/>
 
 
   <!--启动springmvc注解-->
   <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" />

  

3、增加注解

1
2
3
4
5
6
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface EnablePaging {
    String value()  default "";
}

  

4、 增加AOP文件。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@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);
    }
 
 
}

 

5. Controller层

1
2
3
4
5
6
7
8
9
10
@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);
  }

  

  

努力加载评论中...
点击右上角即可分享
微信分享提示