カスタムページングコメント
@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD、ElementType.TYPE}) @Documented パブリック @ インタフェースEnablePage { String値()デフォルト "" 。 }
定義されたページング傍受
@Aspect @Component パブリック クラス PageAop 延びBaseService { / ** すべての機能com.example.fileupload.controllerのエントリポイントで*定義エントリポイント * / @Pointcut(「実行(* com.liuchao.mayikttest.mapperを公開します。 *。*(..)) " ) / * *結合点を定義する * / 公共 ボイドブログ(){ } @Around(ウェブログ()"" ) パブリックオブジェクトdoAroundAdvice(ProceedingJoinPoint ProceedingJoinPoint)がスローされたThrowable { MethodSignature MethodSignature = (MethodSignature)をproceedingJoinPoint.getSignature(); 方法方法 =methodSignature.getMethod()。 EnablePage enablePage = method.getAnnotation(EnablePage。クラス)。 もし(StringUtils.isEmpty(enablePage)){ オブジェクトOBJ = proceedingJoinPoint.proceed()。 返すOBJ; } のHttpServletRequest要求 = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes())のGetRequest()。 ストリングPAGENO = request.getParameter( "PAGENO" )。 ストリングのpageSize = request.getParameter( "pageSizeを" )。 PageHelper.startPage(Integer.valueOf(PAGENO)、Integer.valueOf(pageSizeを))。 オブジェクト進む = proceedingJoinPoint.proceed()。 戻る進みます。 / * BaseResponse baseResponse =(BaseResponse)proceedingJoinPoint.proceed(); リストデータ=(リスト)baseResponse.getData(); PageInfo pageInfo =新しいPageInfo(データ)。 リターンsetSuccess(pageInfo)。* / } }
マッパーメソッドに注釈をページング
パブリック インターフェースUserMapper { @EnablePage 一覧 <UserDO> のfindAll(); UserDO findById(int型のID); }
ページングとリターン情報ページ情報