闲着无聊写的不太实用的小工具
以下是成品图
1、首先导入依赖。
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
2、制作模板。 文件首字母大写,并以.ftl 为后缀。
Pojo.ftl
package com.[替换自己的包名].pojo;
public class ${modelNameUpper} {
public ${modelNameUpper}() {
}
}
Dao.ftl 这里写了些基本的方法
package com.[替换自己的包名].controller;
import com.[替换自己的包名].pojo.${modelNameUpper};
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class ${modelNameUpper}Dao {
@Autowired
private ${modelNameUpper}Mapper ${modelNameLower}Mapper;
public List<${modelNameUpper}> findAll(){
List<${modelNameUpper}> ${modelNameLower}List = ${modelNameLower}Mapper.findAll();
return ${modelNameLower}List;
}
public void delete(Integer id){
${modelNameLower}Mapper.delete(id);
}
public void add(${modelNameUpper} ${modelNameLower}) {
${modelNameLower}Mapper.add(${modelNameLower});
}
public void update(${modelNameUpper} ${modelNameLower}) {
${modelNameLower}Mapper.update(${modelNameLower});
}
public ${modelNameUpper} findById(Integer id){
List<${modelNameUpper}> ${modelNameLower}List=${modelNameLower}Mapper.findById(id);
if (${modelNameLower}List!=null&&${modelNameLower}List.size()!=0){
return ${modelNameLower}List.get(0);
}else {
return null;
}
}
}
Service.ftl
package com.[替换自己的包名].service;
import com.[替换自己的包名].dao.${modelNameUpper}Dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ${modelNameUpper}Service {
@Autowired
private ${modelNameUpper}Dao ${modelNameLower}Dao;
}
Controller.ftl
package com.[替换自己的包名].controller;
import com.[替换自己的包名].service.${modelNameLower}Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/${modelNameLower}")
public class ${modelNameUpper}Controller {
@Autowired
private ${modelNameUpper}Service ${modelNameLower}Service;
}
3、测试。
public class TestFreemarker {
public static void main( String[] args ) {
try {
String modelNameUpper="User";
gen(modelNameUpper, "Controller");
gen(modelNameUpper,"Service");
gen(modelNameUpper,"Dao");
gen(modelNameUpper,"Pojo");
} catch (Exception e) {
e.printStackTrace();
}
}
private static void gen(String modelNameUpper, String target) throws IOException, TemplateException {
String modelNameLower=modelNameUpper.toLowerCase();
Configuration cfg = new Configuration(Configuration.VERSION_2_3_28);
//指定模板地址
cfg.setDirectoryForTemplateLoading(new File("C:\\[此处替换为模板所在目录]\\freemarker"));
cfg.setDefaultEncoding("UTF-8");
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
cfg.setLogTemplateExceptions(false);
cfg.setWrapUncheckedExceptions(true);
//获取模板对象
Template temp = cfg.getTemplate(target+".ftl");
//输出模板
if (target=="Pojo"){
target="";
}
Writer out = new OutputStreamWriter(new FileOutputStream("C:\\[此处替换文件生成的目录]target\\"+modelNameUpper+target+".java"));
Map<String,Object> dataModel=new HashMap<String,Object>();
dataModel.put("modelNameLower",modelNameLower);
dataModel.put("modelNameUpper",modelNameUpper);
temp.process(dataModel,out);
}
}