文件模板
BaskServer创建文件的时候可以指定模板。
模板文件的需要继承com.basksoft.core.NewFileTemplate.java的接口,并实现其中的方法。然后用【SPI】插件的方式注册。
参考步骤:
- 创建一个java类,实现
NewFileTemplate
接口。 - 在
resources
目录下创建META-INF/services/com.basksoft.core.NewFileTemplate
文件,并写入该类全名。 - 在
resources
目录下创建report-template.xml
文件,并写入该文件类型的XML内容。
这样我们在创建指定文件类型时,会自动调用该模板的content()
方法,返回该文件类型的XML内容。
接口声明:
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";
}
}