首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

IntelliJ IDEA 程式碼模板自定義實戰:File and Code Templates 完整配置指南

     編輯:Java 綜合教學

IntelliJ IDEA 程式碼模板自定義實戰

統一團隊程式碼風格、自動生成標準化註解,是提升開發效率與程式碼品質的關鍵。本文詳細講解如何使用 IntelliJ IDEA 的 File and Code Templates 功能,打造專屬的程式碼生成模板。

一、兩大模板機制對比

特性Live TemplatesFile and Code Templates
觸發方式縮寫 + Tab 鍵新建檔案時自動套用
適用場景程式碼片段快速插入類別/介面/Enum 整體結構
變數支援豐富(表達式、腳本)預定義變數(${NAME}、${DATE} 等)
範圍編輯器內任意位置檔案層級

二、File and Code Templates 核心配置

1. 開啟設定位置

Settings (Ctrl+Alt+S) → Editor → File and Code Templates

2. 內建模板分類

  • Files:各類檔案模板
  • Includes:可重用的片段模板
  • Code:程式碼產生模板

三、實戰:建立標準 Java 類別模板

1. 類別註解模板

編輯 Files → Class:

#if (${PACKAGE_NAME} != "")
package ${PACKAGE_NAME};
#end

/**
 * @author ${USER}
 * @date ${DATE} ${TIME}
 * @description ${DESCRIPTION}
 * @version 1.0
 */
public class ${NAME} {
}

2. 版權聲明模板

編輯 Includes → File Header:

/**
 * Copyright (c) ${YEAR} ${COMPANY_NAME}. All rights reserved.
 * This software is the confidential and proprietary information of ${COMPANY_NAME}.
 */

3. 掛載版權聲明到類別模板

在 Files → Class 最頂部加入:

#parse("File Header.java")

4. 介面與 Enum 同步配置

同樣編輯 Files → Interface 和 Files → Enum,引用相同的 File Header。

四、常用預定義變數速查表

變數說明範例
${NAME}檔案名稱(不含副檔名)UserService
${PACKAGE_NAME}套件名稱com.example.service
${USER}系統使用者名稱john.doe
${DATE}當前日期2024-01-15
${TIME}當前時間14:30:25
${YEAR}當前年份2024
${MONTH}當前月份01
${DAY}當前日期15
${PROJECT_NAME}專案名稱my-spring-boot-app
${MODULE_NAME}模組名稱service-module

五、進階:自定義變數與腳本

1. 使用 #set 定義變數

#set($DESCRIPTION = "用戶服務介面")
public interface ${NAME} {
}

2. 使用 Groovy 腳本動態生成

/**
 * @author ${USER}
 * @date ${DATE}
 * @description ${GROOVY_SCRIPT:"return 'Auto-generated ' + new Date().format('yyyy-MM-dd')"}
 */

六、團隊共享模板最佳實踐

1. 導出/匯入模板

  • Settings → Editor → File and Code Templates → 點擊齒輪圖示 → Export/Import Settings
  • 或直接複製 config/templates 目錄到版本控制

2. 專案級模板(.idea 檔案)

專案根目錄建立 .idea/fileTemplates/ 目錄,放入自定義模板檔案,提交到 Git 實現團隊同步。

3. 結合 EditorConfig 統一格式

# .editorconfig
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.java]
indent_size = 4

七、常用模板範例庫

1. Spring Service 實作類

#parse("File Header.java")

#if (${PACKAGE_NAME} != "")
package ${PACKAGE_NAME};
#end

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional(rollbackFor = Exception.class)
public class ${NAME} implements ${INTERFACE_NAME} {
}

2. JUnit 5 測試類

#parse("File Header.java")

#if (${PACKAGE_NAME} != "")
package ${PACKAGE_NAME};
#end

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.DisplayName;
import static org.junit.jupiter.api.Assertions.*;

@DisplayName("${NAME} 測試")
class ${NAME}Test {

    @Test
    @DisplayName("測試方法")
    void testMethod() {
        // given
        
        // when
        
        // then
    }
}

3. MyBatis Mapper 介面

#parse("File Header.java")

#if (${PACKAGE_NAME} != "")
package ${PACKAGE_NAME};
#end

import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface ${NAME}Mapper {
    
    int insert(${ENTITY_NAME} entity);
    
    int update(${ENTITY_NAME} entity);
    
    ${ENTITY_NAME} selectById(Long id);
    
    List<${ENTITY_NAME}> selectAll();
    
    int deleteById(Long id);
}

八、Live Templates 互補配置

常用片段快速鍵(Settings → Editor → Live Templates):

縮寫展開內容適用語境
psvmpublic static void main(String[] args) { }類別內部
soutSystem.out.println();方法內部
psfspublic static final String類別內部
itarfor (int i = 0; i < array.length; i++) { }方法內部
itcofor (Element element : collection) { }方法內部
tryctry { } catch (Exception e) { }方法內部
singleton單例模式完整程式碼類別內部

透過 File and Code Templates 統一檔案級結構,配合 Live Templates 加速片段編寫,再結合 EditorConfig 強制格式化,能構建高效一致的團隊開發環境。建議將模板納入專案版本控制,新成員 Clone 專案即可獲得標準化配置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved