CSV流式导出(基于注解)

本文介绍如何使用Java后端的注解实现CSV文件的流式导出,通过以/export为前缀的URL进行请求,便于导出任务在独立机器上处理。内容包括注解定义及代码示例。
摘要由CSDN通过智能技术生成

CSV流式导出(基于注解)

之前已经写过一篇csv导出可以看一下:csv流式导出

CSV流式导出(基于注解)

导出处理也可以通过url路径请以/export开头, 以便ng将导出请求分流到独立机器。
(我们有对导出做独立机器处理)

过多的文字就不做叙述了,具体可以参照上一篇。接下来就直接上代码了。

package com.opc.common.util.export;

public class ExportFactory {
    private static final Logger logger = LoggerFactory.getLogger(ExportFactory.class);

    private static final String CONFIG_NAME = "special_character.json";
    private static final String CONFIG_APP_NAME = "opc_unmanned_shelves_man";
    private static List<String> characters = Lists.newArrayList();

    static {
        TypedConfig<String> config = TypedConfig
                .get(CONFIG_APP_NAME, CONFIG_NAME, Feature.DEFAULT, TypedConfig.STRING_PARSER);
        characters = JsonUtil.ofList(config.current(), String.class);
        config.addListener(new Configuration.ConfigListener<String>() {
            @Override
            public void onLoad(String application, String name, String value) {
                logger.info("characters config value:{}", value);
                characters = JsonUtil.ofList(value, String.class);
            }
        });
    }

    /**
     * csv流式导出
     *
     * @param response
     * @param fileName
     * @param query
     * @param processor
     * @throws IOException
     */
    public static void doExport(
            HttpServletResponse response, String fileName, ExportQuery query, ExportProcessor processor)
            throws IOException {
        initResponseHead(response, fileName);

        List<String> heads = getHeads(processor);

        PrintWriter print = response.getWriter();
        //打印表头head
        println(print, heads);
        List<String> fieldNames = getFieldNames(processor);
        while (true) {
            ExportResult exportResult = processor.exectue(query);
            if (exportResult == null) {
                break;
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值