文件代碼模板可以簡(jiǎn)單理解為:我們?cè)陧?xiàng)目中創(chuàng)建某些類型文件時(shí),就已經(jīng)在對(duì)應(yīng)這些新文件中預(yù)設(shè)了代碼內(nèi)容。因?yàn)槲淖直磉_(dá)都帶有點(diǎn)無力,所以下面用 Gif 動(dòng)態(tài)圖來演示。
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xviii-a-file-and-code-templates-introduce-1.gif" alt="文件代碼模板的介紹" />
- 如上圖 Gif 所示,IntelliJ IDEA 默認(rèn)新建類自帶的類注釋格式一般不夠友好或是規(guī)范,所以我們一般需要自己根據(jù)公司編碼規(guī)范進(jìn)行設(shè)置。
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xviii-a-file-and-code-templates-introduce-2.gif" alt="文件代碼模板的介紹" />
- 如上圖 Gif 所示,這是根據(jù)我自己的需求進(jìn)行設(shè)置的類注釋,這種注釋方式會(huì)更友好。
根據(jù)演示我們應(yīng)該已經(jīng)很好地理解了文件代碼模板是什么東西了。對(duì)此我們可以衍生出很多玩法,比如:我們的項(xiàng)目 Controller、Service、Dao 等常用新對(duì)象都是要各自繼承某個(gè)類、實(shí)現(xiàn)某些接口或預(yù)設(shè)某些方法,也都可以通過這樣的文件代碼模板來實(shí)現(xiàn)。
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xviii-b-file-and-code-templates-settings-1.jpg" alt="文件代碼模板的設(shè)置" />
- 如上圖標(biāo)注 1 所示,文件代碼模板支持的類型基本常見的文件類型都涵蓋了。
- 如上圖標(biāo)注 2 所示,這是 Java 文件模板新建的代碼模板,其中
${PACKAGE_NAME}、${NAME}是 IntelliJ IDEA 預(yù)設(shè)的變量。- 如上圖標(biāo)注 3 所示,IntelliJ IDEA 的文件代碼模板是可以使用
Velocity Template Language(VTL) 進(jìn)行書寫的。如圖 2 上的#if ... #end和#parse都是 VTL 的語(yǔ)法。- 如上圖標(biāo)注 4 所示,介紹當(dāng)前文件模板的一些信息,以及一些預(yù)設(shè)變量的作用介紹。
- 如上圖標(biāo)注 5 所示,這四個(gè)按鈕是文件代碼模板的主要操作按鈕,四個(gè)操作分別是:
Create Template創(chuàng)建一個(gè)文件代碼模板。Remove Template刪除一個(gè)文件代碼模板,標(biāo)注 1 所示的這些預(yù)設(shè)模板是不允許刪除的,只能能刪除預(yù)設(shè)之外的新增的。Copy Template復(fù)制一個(gè)文件代碼模板。Reset To Default對(duì)被修改的預(yù)設(shè)文件代碼模板,還原到默認(rèn)狀態(tài)。
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xviii-b-file-and-code-templates-settings-7.gif" alt="文件代碼模板的設(shè)置" />
- 如上圖 Gif 演示,IntelliJ IDEA 默認(rèn)是沒有提供 XML 文件的創(chuàng)建的,所以我自己創(chuàng)建了一個(gè)名為:
YouMeek XML的文件模板,該模板后綴為:xml,里面的初始化內(nèi)容為:<?xml version="1.0" encoding="UTF-8"?>。初始化的內(nèi)容你可以根據(jù)自己的需求進(jìn)行補(bǔ)充。
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xviii-b-file-and-code-templates-settings-2.jpg" alt="文件代碼模板的設(shè)置" />
- 如上圖標(biāo)注 1 所示,IntelliJ IDEA 還支持其他常見會(huì)新建的文件類型,基本上我們根本不用擔(dān)心有不支持的文件類型,常用的基本都被涵蓋了。
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xviii-b-file-and-code-templates-settings-3.jpg" alt="文件代碼模板的設(shè)置" />
- 如上圖標(biāo)注 1 所示,該
File Header文件就是前面 Java 文件代碼模板中引入語(yǔ)句中#parse("File Header.java")文件。
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xviii-b-file-and-code-templates-settings-4.jpg" alt="文件代碼模板的設(shè)置" />
- 如上圖標(biāo)注箭頭所示,
${DESCRIPTION}是我們自己定義的變量,自定義變量格式有兩種方式:$變量名 或 ${變量名}。- 自定義的變量在創(chuàng)建對(duì)應(yīng)的文件時(shí)候就必須輸入內(nèi)容,這個(gè)在本文最上面的 Gif 演示中已經(jīng)有體現(xiàn)了。
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xviii-b-file-and-code-templates-settings-5.gif" alt="文件代碼模板的設(shè)置" />
- 如上圖 Gif 所示,當(dāng)我們需要用到一個(gè)固定值的自定義變量的時(shí)候并且該變量多個(gè)地方被引用,我們可以通過 VTL 語(yǔ)法的
#set( $變量名 = "變量值內(nèi)容" );來設(shè)置。
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xviii-b-file-and-code-templates-settings-6.jpg" alt="文件代碼模板的設(shè)置" />
- 因?yàn)?
Code模塊改動(dòng)的人不多,所以放在最后。我們是無法新建、刪除Code里面的代碼模板。- 如上圖標(biāo)注 1 所示,在我們通過快捷方式生成某個(gè)類的測(cè)試方法時(shí)候會(huì)自動(dòng)調(diào)用此
Code模板,所以我們可以解釋該Code功能主要用在 IntelliJ IDEA 自動(dòng)幫我們生成某些代碼的時(shí)候引用的模板。
因?yàn)樽兞康拿髁瞬贿^了,所以這里不多講解,直接貼出官網(wǎng)的英文解釋:
- ${PACKAGE_NAME} - the name of the target package where the new class or interface will be created.
- ${PROJECT_NAME} - the name of the current project.
- ${FILE_NAME} - the name of the PHP file that will be created.
- ${NAME} - the name of the new file which you specify in the New File dialog box during the file creation.
- ${USER} - the login name of the current user.
- ${DATE} - the current system date.
- ${TIME} - the current system time.
- ${YEAR} - the current year.
- ${MONTH} - the current month.
- ${DAY} - the current day of the month.
- ${HOUR} - the current hour.
- ${MINUTE} - the current minute.
- ${PRODUCT_NAME} - the name of the IDE in which the file will be created.
- ${MONTH_NAME_SHORT} - the first 3 letters of the month name. Example: Jan, Feb, etc.
- ${MONTH_NAME_FULL} - full name of a month. Example: January, February, etc.
PHP 的文件類型預(yù)設(shè)的變量比上面的還多一點(diǎn),具體可以查閱官網(wǎng):