Java注解处理(Annotation Processor)实战:Excel导出接口自动生成

      距离之前的Java APT的相关文章已经过了接近半年时间,这半年间也做了一些有关APT的应用,最近趁着过年在家整理开源了一个Excel导出接口自动生成的项目至Githubhttps://github.com/DreamJM/DreamSpringExcel),各位要是喜欢可以点击链接去点个星支持一下。

1. 需求&背景

       在类似后台管理系统中,会有一些Table数据查询与展示页面,同时会要求能将数据导出成Excel,而且导出数据基本上与Table页面展示数据相同。而利用poi以及相同的数据源进行Excel导出接口实现时,通常伴随着大量的雷同代码。

       为此,最好的方式即在现有数据查询接口的基础上,通过注解定义以及编译器的注解处理器,自动生成Excel导出接口。

2. 当前实现

       此次开源项目针对上述需求进行实现,注解及相关通用工具定义在excel-base中,注解处理器相关逻辑在excel-processor中,有兴趣的各位可以去看一下说明与源码,目前先对使用进行说明。

@ExcelSupport("com.dream.spring.excel.test.controller.excel.ExcelController")
@RestController
public class TestController {

    @ExcelExport(value = "/api/excel/test",
            annotations = {@AnnotationDef(clazz = TestAnnotation.class, members = {@AnnotationMember(name = "value", value = "\"hello\""),
                    @AnnotationMember(name = "children", value = "value=\"child\"", annotation = ChildValue.class)})})
    @GetMapping("/api/test")
    public Result<PageResult<Test>> test(@RequestParam(required = false) String param1, @ParamIgnore("-1") @RequestParam int type,
                                         @ParamIgnore @RequestParam(required = false) Integer pageNum,
                                         @ParamIgnore @RequestParam(required = false) Integer pageSize) {
        ... ...
    }
}

如上示例所示,在原有接口的基础上增加了如下两个注解:

  • ExcelSupport:注解处理器的入口,同时其value值指示自动生成的Excel导出接口的Controller名,默认将会在被注解Controller同级的包下生成ExcelController,并且多个被注解Controller可指定同一Controller名。
  • ExcelExport:指定Excel生成的数据源方法,根据该方法生成E
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值