使用FreeMarker生成模板代碼
在平時開發過程中,一般都是需要Dao層,Service層,而每一層當中都需要自己編寫一部分常用代碼,例如在Dao(基于Mybatis框架)層中編寫返回值為List的方法用于查詢數據庫中數據,或者是add方法對數據庫執行插入操作等一系列的方法,而且我們發現再換做另外一張表的時候也是這種操作,list,add。。。。。。
那么什么樣的方式可以減少這種重復的工作呢?
FreeMarker可以做到,FreeMarker是一款基于模板和要改變數據的模板引擎,用于生成輸出文本,他可以用于生成靜態頁面,同樣也可以生成java代碼,使用過程也很簡單,首先使用它給出的標簽制作對應的模板,然后調用給出的方法結合數據,生成最后的代碼。
第一步:引入依賴
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
第二步:編寫模板
FreeMarker模板的編寫依照本身提供的FreeMarker標簽,標簽以{名稱},這里需要注意下,FreeMarker所生成的文件后綴名是ftl,下面代碼的文件名就是Dao.ftl
package ${clsspath}
public interface ${daoName}Dao{
public ${daoName} selectOne(${daoName} ${daoName});
public List<${daoName}> selectAll(${daoName} ${daoName});
public int insert(${daoName} ${daoName});
public int update(${daoName} ${daoName});
}
同時FreeMarker也提供一些標簽進行邏輯處理,比如if標簽,list標簽
<#if condition>...
<#elseif condition2>...
<#elseif condition3>......
<#else>...
<#list student as stu>
${stu}<br/>
</#list>
關于FreeMarker標簽這里不做過多描述,有興趣的小伙伴可以在網上看下相關博客
第三步:放入數據,根據數據生成對應文件
public void code() {
Configuration configuration = new Configuration(); // 創建對象
Map<String,Object> map = new HashMap<String, Object>();
map.put("clsspath", "com.bdqn.dao");
map.put("daoName", "User");
try {
String path = this.getClass().getClassLoader().getResource("").getPath();
//設置模板所在文件夾
configuration.setDirectoryForTemplateLoading(new File(path));
//配置文件所在位置
Template t = configuration.getTemplate("Dao.ftl");
//生成后代碼所在位置
File docFile = new File("D:/code/UserDao.java");
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile)));
t.process(map, out);
} catch (Exception e) {
e.printStackTrace();
}
}
好,剩下的就是在Main方法中調用上方方法,這里我是使用IDEA創建的Maven項目,項目結構如下
各位小伙伴如果有什么問題,請寫在評論上
智能推薦
freemarker模板生成word文件
項目中首先引入freemarker的jar包,下載鏈接:http://download.csdn.net/download/pnljg/2736572 1、用word文檔制作好模板 ceshi.docx 2、將ceshi.docx文件另存為ceshi.xml文件 ${name}、${tel}、${address}被拆分了,用notpad++打開ceshi.xml文件,將被拆分的數據重新修改,修改完...
用freemarker生成word模板
需求: 給文書統一生成一個搞頭文件,文件內容基本是一樣的。 用freemarker生成docx文檔 一、生成一個docx結尾的word模板,然后把文檔的后綴docx改成zip,zip里會有生成很多文件。如下圖: 然后打開word文件夾,如下圖: 把document.xml拿出來,把后綴xml改成ftl,然后把里面的內容(在線格式化xml)格式化一下,把一些可變的參數做成變量。 二、在resourc...
使用freemarker生成javabean
1、官網下載jar包 maven中配置的jar包 <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.2...
使用freemarker生成word,步驟詳解并奉上源代碼
1.使用idear搭建springboot框架項目 2.pom.xml添加 3.applicatoin.xml(可以忽略)直接使用自定義類的main函數執行對應代碼就可以 4.創建demo.doc文件 編寫所需要的樣式 5.將demo.doc-->另存為demo.xml---》使用editplus打開---》xml格式化便于查看 6.使用framemaker循環語句 插入到對應的標簽上(使用...
【freemarker】【代碼生成器】
數據模型的類 作用,是生成目標文件的數據模型.傳入domain類,返回其數據模型的封裝類 構造器提供domain類的Class對象. propNames:屬性List className:簡單名的字符串(首字母大寫) basePackage:基礎包的字符串 例: 傳入一個類com.lwf.domain.Employee的Class對象,生成ci對象 * ci.basePackage= com.lw...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...