代码生成器底层原理:模板框架freemarker
2023-12-18 14:00:07
1.按照设置好的模板文件就能生成Java,vue文件,前后端都可生成。
2.也可以进行复杂Excel到处:可以转成xml,用xml来制作模板,在生成excel
3.需要批量生成格式固定的一类文件的需求也可以使用模板框架freemarker
?首先引入相对应的依赖pom.xml
<!-- 模板引擎freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
接下来在包下面定义一个模板 test.ftl
package com.jiawa.train.generator.test;
public class ${domain} {
private String name;
}
然后理解下面封装的工具类FreemarkerUtil.java
package com.jiawa.train.generator.util;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Map;
public class FreemarkerUtil {
static String ftlPath = "generator/src/main/java/com/jiawa/train/generator/ftl/";
static Template temp;
/**
* 读模板
*/
public static void initConfig(String ftlName) throws IOException {
Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);// 版本号
cfg.setDirectoryForTemplateLoading(new File(ftlPath));// 上面的配置路径
cfg.setObjectWrapper(new DefaultObjectWrapper(Configuration.VERSION_2_3_31));//版本号
temp = cfg.getTemplate(ftlName);// 获取模板参数
}
/**
* 根据模板,生成文件
*/
public static void generator(String fileName, Map<String, Object> map) throws IOException, TemplateException {
FileWriter fw = new FileWriter(fileName);
BufferedWriter bw = new BufferedWriter(fw);
temp.process(map, bw);
bw.flush();
fw.close();
}
}
启动类需要两个参数, 一个就是生成的路径,还有生成文件的名字 ServerGenerator.java
结合xml配置来进行对数据库单表实现增删改查
json还未流行时,数据传递都是用xml,传递同样的数据xml包更大,不利于传输 所以现在很少项目使用
首先导入dom4j依赖
<!-- 读xml -->
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/jaxen/jaxen -->
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.2.0</version>
</dependency>
<build>
<plugins>
<!-- mybatis generator 自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<!--<configurationFile>src/main/resources/generator-config-member.xml</configurationFile>-->
<configurationFile>src/main/resources/generator-config-business.xml</configurationFile>
<!--<configurationFile>src/main/resources/generator-config-batch.xml</configurationFile>-->
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
?
文章来源:https://blog.csdn.net/qq_60870118/article/details/135057039
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!