最近由于项目需要,通过改造ruoyi来满足项目需求,但是测试的是否发现系统自带的分页功能失效,网上也有相应的解决教程,问题虽然可以解决但没办法满足生产需求。于是利用spring的动态代理、AOP和注解对业务代码进行增强,以达到分页效果,灵感一部分来自某个帖子,后面会将帖子的链接附上。附上实现代码。
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PageAnno {
String value() default "";
}
上述定义一个分页注解,将方法添加该注解后springAOP会对方法进行处理。下附切面实现
@Aspect
@Component
public class PageAspect {
private static final Logger LOG = LoggerFactory.getLogger(PageAspect.class);
private Integer pageNo = 0;
private Integer pagesize = 0;
private String methodDescript;
@Pointcut("@annotation(com.ruoyi.content.aspect.PageAnno)")
public void pagePointCut() {
}
@Around("pagePointCut()")
public Map<String,Object> beforeList(ProceedingJoinPoint joinPoi