springboot注解大全注解(springboot如何分页)

分页使用可以说非常普遍了,有时候会需要非常灵活的方式去开启或关闭分页,尝试使用一下注解的方式来进行分页。
依赖安装需要使用的依赖:
我的batis-pluspagehelperspingboot AOP添加砰的一声依赖
com。米宝斗mybatis加启动3。4 .3 .4 com。github。页面助手页面助手-弹簧-启动-启动1。4 .0组织。spring框架。启动弹簧-启动-启动-AOP 2。5 .5添加公共返回实体类需要两种实体类,一种是不分页直接返回数据的,另一种是分页返回数据和总数据条数的
普通实体类Ajax result @ Data @ NoArgsConstructor @ AllArgsConstructorpublic类Ajax结果{ public static final int CODE _ SUCCESS=200;公共静态final int CODE _ authorized=401公共静态最终int CODE _ FORBIDDEN=403公共静态最终整数代码错误=500公共静态最终字符串MSG_SUCCESS=’操作成功’;公共静态最终字符串MSG_FAILED=’操作失败’;公共静态最终字符串MSG_NOT_PERMISSION=’用户权限不足’;公共静态最终字符串MSG_UNAUTHORIZED=’用户未登录或身份已过期’;私有(同Internationalorganizations)国际组织代码;私有字符串味精私人测试数据;public static Ajax result SUCCESS(int code,T data){ return new Ajax result(code,MSG_SUCCESS,data);}公共静态Ajax结果成功(T数据){返回成功(CODE _ SUCCESS,data);}公共静态Ajax结果SUCCESS(){返回成功(CODE _ SUCCESS,null);}公共静态AjaxResult错误(int code,String msg){返回新的Ajax结果(code,msg,null);}公共静态Ajax结果错误(String msg){返回错误(CODE _ ERROR,msg);}公共静态Ajax结果错误(){返回新的Ajax结果(CODE _ ERROR,MSG_FAILED,null);}}分页实体类页面结果继承AjaxResult,额外添加总计、页码和页面大小等字段
@Datapublic类页面结果扩展AjaxResult { private long合计私人长佩吉诺私有long page size public page result(){ this。设置代码(CODE _ SUCCESS);这个。setmsg(MSG _ SUCCESS);}公共页面结果(Ajax result Ajax result){ this();如果(对象。nonnull(Ajax结果)){ set code(Ajax结果。getcode());setMsg(Ajax结果。getmsg());} }}注解处理分页注解页码创建一个用于分页的注解页码
其实这里的佩吉诺和页面大小没什么需求的话可以去掉的
/** * 分页注解*/@目标(元素类型.方法)@Retention(RetentionPolicy .运行时)公共@接口分页{ //第几页的请求参数名称通过获取参数名称获取真正的pageNo字符串pageNo()默认为”pageNo”;//分页大小的请求参数名称字符串页面大小()默认为”页面大小”;}使用面向切面编程进行分页创建一个类用于处理分页注解,切入点要根据自己注解进行修改
@ Aspect @ Component @ SLF 4j公共类分页Aspect {/* * *定义切入点*/@ Pointcut(‘ @ annotation(cn。蒙塔罗。社交。方面。注释。pagination)’)public void access(){ } @ sneaky trows @ Around(‘ access()’)public Object Around(ProceedingJoinPoint连接点){ Object[]args=连接点。get args();pagination pagination=get pagination批注(连接点);startPage(pagination.pageNo()、pagination。pagesize());//调用原本方法的内容并获取返回值对象结果=连接点。进行(args);//返回的数据类型要保证和注解方法上的一致返回页面结果(结果);} /** * 获取页码注解* * @ param连接点* @ return */public Pagination get Pagination annotation(ProceedingJoinPoint连接点){方法签名方法签名=(方法签名)连接点。获取签名();方法方法=方法签名。get方法();分页分页=方法。获取注释(分页。类);返回分页;} /** * 开始分页*/private void起始页(String pageno parametername,String pagesize parameter name){//获取佩吉诺和pageSize int pageNo=servlet utils。getparametertoint(pageNoParameterName,1);int pageSize=servlet utils。getparametertoint(pageSize参数名,10);PageHelper.startPage(pageNo,pageSize);} /** * 对分页结果进行包装如果分页成功则会返回页面结果* * @ param result */私有对象页面结果(对象结果){/* * *如果分页成功,则查询返回的结应该是一个page { @ link com。github。页面助手。第页} *进行一次强制转换就能获取到总计、页码、页面大小这些字段*/PageInfo PageInfo=null;AjaxResult ajaxResult=null//列表数据如果方法返回页则直接使用如果是AjaxResult则得到一条数据再封装对象列表=nullif(页面的结果实例){ list=resultPage page=(页面)结果;pageInfo=new pageInfo(page);} else if(Ajax结果的结果实例){ ajaxResult=(AjaxResult)结果;对象数据=Ajax结果。get data();如果(列表的数据实例){ list=datapageInfo=new PageInfo((列表)数据);} } if (pageInfo!=null){页面结果页面结果=新页面结果(Ajax结果);页面结果。setdata(列表);页面结果。setpageno(pagenfo。get pagenum());页面结果。设置pagesize(page info。get pagesize());页面结果。设置总计(页面信息。get total());返回pageResult}返回结果;}}还有注解中使用到的ServletUtils
公共类servlet utils { public static http servlet request getRequest(){ ServletRequestAttributes request attributes=getRequestAttributes();返回请求属性。get request();}公共静态ServletRequestAttributes getRequestAttributes(){请求属性请求属性=requestcontextholder。getRequestAttributes();返回(ServletRequestAttributes)请求属性;}公共静态整数getParameterToInt(String参数名,整数默认值){ http servlet request request=get request();字符串strValue=请求。getparameter(参数名);整数int值=转换。toint(strValue,默认值);返回intValue}公共静态整数getParameterToInt(字符串参数名){ return getParameterToInt(参数名,null);}}使用注解为了避免跑题,此处就省略mybatis-plus的使用了。
需要分页就加上@分页注解就行了,不需要就注释掉,代码完全不需要修改
分页的时候传入佩吉诺和页面大小参数就可以了,如果参数名需要更改,就修改@分页就可以了
编写控制器类@ rest控制器@请求映射(‘/user ‘)公共类用户控制器{ @ auto wired private IUserService userService;/** * 列出所有用户* @ return */@ Pagination @ get mapping(‘/List ‘)公共Ajax结果列表(UserQueryReq query){ List userList=userservice。selectuserlistbyquery(查询);返回AjaxResult.success(用户列表);}}测试使用的邮递员测试查看效果
使用注解的时候
把注解注释掉
原文链接:https://www。cnblogs。com/montaro/p/15415509。超文本标记语言

其他教程

如何使用css3旋转对象(css3动画自动旋转)

2022-9-7 11:05:06

其他教程

二胡找音准口诀(二胡调音音准)

2022-9-7 11:07:09

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索