Java开发中可通过配置Live Templates提升编码效率:logd模板一键生成带类名的日志字段;MyBatis Mapper XML模板自动填充标准结构;psvm+sout组合快速创建main方法及调试输出;gsn模板生成带空值校验的getter/setter。

在日常Java开发中,频繁编写重复结构的代码(如日志初始化、空值校验、MyBatis Mapper方法)会严重拖慢编码节奏,手动补全还容易漏写分号、错配括号或拼错类名。你不是缺时间,而是缺一套能随需触发、精准展开、上下文自适应的模板体系。
配置Live Templates让logd一键生成带类名的日志字段
第一步:打开File → Settings → Editor → Live Templates(macOS为IntelliJ IDEA → Preferences → Editor → Live Templates)。
第二步:点击右侧+号 → Live Template,填写Abbreviation为logd,Description写“生成带当前类名的SLF4J logger字段”。
第三步:在Template text框中粘贴以下内容:private static final Logger logger = LoggerFactory.getLogger($CLASS_NAME$.class);
第四步:点击Edit variables → 为$CLASS_NAME$设置Expression为className(),并勾选Skip if defined;其他变量留空即可。这一步不设表达式会导致生成时弹出输入框,打断编码流。
第五步:在Applicable contexts中仅勾选Java → Declaration,确保它只在类体顶部生效,不会误插在方法内部或注释里。【必须关闭“Always use this context”】否则模板会在任意语言文件中出现,造成干扰。
创建MyBatis Mapper XML文件模板(含标准命名空间与DOCTYPE)
这个模板专用于快速新建UserMapper.xml这类文件,避免每次手敲XML头和mapper根标签。
进入File → Settings → Editor → File and Code Templates → Files标签页 → 点击+号 → New Template。
模板名称填“MyBatis Mapper XML”,Extension填xml,在Template text区域完整粘贴:
<?xml version="1.0" encoding="UTF-8"?><br><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"<br> "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><br><mapper namespace="${NAME}Mapper"><br></mapper>注意:${NAME}是IDEA内置变量,会自动替换为新建文件时输入的文件名(如输入UserMapper,就生成namespace="UserMapperMapper")。如果没生效,说明你漏掉了文件名后缀——新建时必须输入UserMapper,而不是UserMapper.xml。
用psvm+sout组合实现main方法内快速打印调试信息
方法一:直接输入psvm→按Tab→再输入sout→按Tab,两步完成main+print输出。
方法二:把sout模板作用域扩展到Java Statement(Settings → Editor → Live Templates → sout → Edit contexts → 勾选Java → Statement),这样在main方法体内光标任意位置输sout→Tab就能展开,不用先跳到行首。
方法三:进阶改写sout模板文本为System.out.println("$CONTENT$");$END$,并给$CONTENT$设置默认值"debug",这样展开后光标直接落在引号内,删掉重写更顺手。
为getter/setter添加带空值校验的增强版Live Template
1、新建Live Template,Abbreviation设为gsn(get-set-null-check)。
2、Template text写:
public $TYPE$ get$NAME$() {<br> return this.$NAME$;<br>}<br><br>public void set$NAME$($TYPE$ $NAME$) {<br> if ($NAME$ == null) throw new IllegalArgumentException("$NAME$ must not be null");<br> this.$NAME$ = $NAME$;<br>}
3、点Edit variables,依次为$TYPE$设Expression groovyScript("def types = ['String', 'Integer', 'Long', 'Boolean']; types.contains(_1) ? _1 : 'Object'", className()),为$NAME$设Expression camelCaseName()。
这一步决定了生成的字段名是否自动转驼峰——比如输入user_name,会生成getUserName()而非getUser_name()。若不设该表达式,所有字段名将保持原始下划线格式,后续调用极易出错。
4、Applicable contexts只选Java → Declaration,防止在方法体里误触发。


















