文件模板

BaskServer创建文件的时候可以指定模板。

模板文件的需要继承com.basksoft.core.NewFileTemplate.java的接口,并实现其中的方法。然后用【SPI】插件的方式注册。

参考步骤:

  1. 创建一个java类,实现NewFileTemplate接口。
  2. resources目录下创建META-INF/services/com.basksoft.core.NewFileTemplate文件,并写入该类全名。
  3. resources目录下创建report-template.xml文件,并写入该文件类型的XML内容。

这样我们在创建指定文件类型时,会自动调用该模板的content()方法,返回该文件类型的XML内容。

undefined

接口声明:

import com.basksoft.core.database.model.FileType;

public interface NewFileTemplate {

    /**
     * @return 返回当前新建文件模版的名称,控制台显示的名称
     */
    String name();
    /**
     * @return 返回模版的具体XML内容
     */
    String content();
    /**
     * @return 返回新建的文件类型
     */
    FileType type();
    /**
     * @return 适用的租户Id,返回null则适用于所有租户
     */
    String tenantId();
}

模板文件示例:

package com.basksoft.baskreport.demo.template;

import java.io.*;

import com.basksoft.core.NewFileTemplate;
import com.basksoft.core.database.model.FileType;

public class ReportNewFileTemplate implements NewFileTemplate {

    @Override
    public String name() {
        return "日报报表模版";
    }

    @Override
    public String content() {
        String text = "";
        String fileName = "report-template.xml";
        try {
            InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName);
            InputStreamReader reader = new InputStreamReader(inputStream);
            BufferedReader br = new BufferedReader(reader);
            String line;
            while((line = br.readLine()) != null){
                text+=line;
            }
            br.close();
            reader.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return text;
    }

    @Override
    public FileType type() {
        return FileType.report;
    }

    @Override
    public String tenantId() {
        return "basksoft";
    }

}

results matching ""

    No results matching ""