[目录]
参考
开发环境
| 名称 | 版本 |
|---|---|
| 操作系统 | Windows 10 X64 |
| JDK | JDK1.8(jdk-8u151-windows-x64) |
| IntelliJ IDEA | IntelliJ IDEA 2018.3 |
自定义类注释
文件-设置-编辑器-文件和代码模版
图中黄色圈部分是我加上去的,其他部分是原有的
/*** @author:* @version:* @description: ${description}* @date: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}**/
新建一个类
package com.test.invoice.data;/*** @author:* @version:* @description: 测试数据类* @date: 2019-08-07 09:53**/public class TRbtTestData {}
或者简单点
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end#parse("File Header.java")/*** ${description}* - luoma - ${YEAR}年${MONTH}月${DAY}日${HOUR}:${MINUTE}*/public class ${NAME} {}
自定义方法注释
文件-设置-编辑器-代码模版-添加 Template Group
命名为 luoma group
添加成功
选中 luoma group,添加 Live Template
输入快键键
缩写: a
描述: 给方法添加注释
模板文本:
*** @author: $author$* @description: $description$* @param: $params$* @return: $returns$* @date: $date$**/
设置起作用的语言,这里我们选中 Java
编辑变量,注意这里需要在模板文本设置为 $名称$ 才会出现,表达式可以通过下拉框选取
| 名称 | 表达式 | 含义 |
|---|---|---|
| author | user() | 获取系统用户 |
| description | ||
| params | methodParameters() | 获取方法参数 |
| return | methodReturnType() | 获取方法返回类型 |
| date | date() | 获取系统当前时间 |
确定,测试结果,编写一个方法,在方法先使用 /a + Tab,就会出现下面的注释
package com.test.invoice.data;/*** @author:* @version:* @description: 测试数据类* @date: 2019-08-07 09:53**/public class TRbtTestData {/*** @author: v_hwhao* @description:* @param: [a, b]* @return: int* @date: 2019/8/7**/public int Add(int a,int b){return a+b;}}
显示类定义,方法定义注释提示
比如我们调用一个类,把鼠标放到类上显示类的注释,把鼠标放到方法上显示方法注释
比如下面的代码
package com.test.invoice.data;/*** @author:* @version:* @description: 测试数据类* @date: 2019-08-07 09:53**/public class TRbtTestData {/*** @author: v_hwhao* @description: 得到两个数相加值* @param: [a, b]* @return: int* @date: 2019/8/7**/public int Add(int a,int b){return a+b;}public void Test(){TRbtTestData test = new TRbtTestData();test.Add(1,2);}}
在 Test() 方法中,我们把光标放到 TRbtTestData,显示类注释 测试数据类,把光标放到 Add 上,显示 得到两个数相加值
设置方法,文件-设置-常规
勾选Show quick documentation on mouse move
结果
但并不是我想要的效果,于是我尝试使用系统的自带的注释功能试试。
使用系统自带的注释功能
在类或方法使用 /**+回车就会出现系统自定义注释功能
测试类,这个类的注释使用 /**+回车 生成
/*** 测试数据类-1*/public class TRbtTestData1{/*** 得到两个数相加值-1* @param a 变量a* @param b 变量b* @return a+b*/public int Add(int a,int b){return a+b;}}
调用
是我想要的效果,但是注释模板不是我自定义
我想用自定义的模版也达到这个效果?
这里尝试修改类模版,方法模版类达到这个效果
修改类注释模版,方法注释模版
结合系统生成的模板,我们修改之前的设置的模版
类注释模版
/*** ${description}* @author:* @version:* @date: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}*/
方法注释模版
*** $description$* @param $params$* @return $return$* @author: $author$* @date: $date$*/
新建一个类,使用自定义注释
package com.test.invoice.data;/*** 测试数据类-2** @author:* @version:* @date: 2019-08-07 11:55*/public class TRbtTestData2 {/*** 得到两个数相加值-2* @param [a, b]* @return int* @author: v_hwhao* @date: 2019/8/7*/public int Add(int a,int b){return a+b;}}
调用
已达到我想要的效果,还有一个问题,方法参数显示不出来
这个需要手动调整了
@param [a, b]
调整
@param a 变量a@param b 变量b
常用 Live Template
try catch 代码块
try {} catch (Exception e) {}
短注释
//------------------------
长注释
//------------------------------------------------
region
//------------------------------------------------region//------------------------------------------------endregion
日志相关
方法入口日志
缩写:
logm模板文本:
log.info($content$,$params$);编辑变量
- 名称:
content 表达式:
groovyScript("def params = _2.collect {'入参: 【'+it+' = {}】'}.join(', '); return '\"' + _1 + '() 开始调用 => ' + (params.empty ? '' : params) + '\"'", methodName(), methodParameters())
名称:
params- 表达式:
groovyScript("def params = _1.collect {it}.join(', '); return (params.empty ? '' : params) ", methodParameters())
- 名称:
方法异常日志
缩写:
loge模板文本:
log.error($content$,$params$);编辑变量
- 名称:
content 表达式:
groovyScript("def params = _2.collect {'入参:【'+it+' = {}】,e:'}.join(', '); return '\"' + _1 + '() 调用异常 => ' + (params.empty ? '' : params) + '\"'", methodName(), methodParameters())
名称:
params- 表达式:
groovyScript("def params = _1.collect {it}.join(', '); return (params.empty ? '' : params) + ',e' ", methodParameters())
- 名称:
方法返回日志
缩写:
logr模板文本:
log.info("$METHOD_NAME$() 结束调用, 返回结果: " + $result$);编辑变量
- 名称:
METHOD_NAME 表达式:
methodName()
名称:
result- 表达式:
variableOfType(methodReturnType())
- 名称:
效果
public String edit(@RequestParam(name = "id", defaultValue = "0") Long id) {String title;try {//logmlog.info("edit() 开始调用 => 入参:【id = {}】",id);//logrlog.info("edit() 结束调用,返回结果: " + title);return title;} catch (Exception e) {//logelog.error("edit() 调用异常 => 入参:【id = {}】,e:",id,e);return "";}}
日志相关-统一方法名
方法名称变量
缩写:
mt模板文本:
String methodName = "$METHOD_NAME$() >> ";编辑变量
- 名称:
METHOD_NAME - 表达式:
methodName()
- 名称:
方法入口日志
缩写:
logm模板文本:
log.info($content$, $params$);编辑变量
- 名称:
content 表达式:
groovyScript("def params = _2.collect {'入参:【'+it+' = {}】'}.join(', '); return 'methodName + \"开始调用 >> ' + (params.empty ? '' : params) + '\"'", methodName(), methodParameters())
名称:
params- 表达式:
groovyScript("def params = _1.collect {it}.join(', '); return (params.empty ? '' : params) ", methodParameters())
- 名称:
或者
缩写:
logbegin模板文本:
log.info($content$, $params$);编辑变量
- 名称:
content 表达式:
groovyScript("def params = _2.collect {'入参:【'+it+' = {}】'}.join(', '); return '\"{}开始调用 >> ' + (params.empty ? '' : params) + '\"'", methodName(), methodParameters())
名称:
params- 表达式:
groovyScript("def params = _1.collect {it}.join(', '); return 'methodName, ' + (params.empty ? '' : params) ", methodParameters())
- 名称:
方法异常日志
缩写:
loge模板文本:
log.error($content$, $params$);编辑变量
- 名称:
content 表达式:
groovyScript("def params = _2.collect {'入参:【'+it+' = {}】,e:'}.join(', '); return 'methodName + \"调用异常 >> ' + (params.empty ? '' : params) + '\"'", methodName(), methodParameters())
名称:
params- 表达式:
groovyScript("def params = _1.collect {it}.join(', '); return (params.empty ? '' : params) + ', e' ", methodParameters())
- 名称:
或者
缩写:
logerror模板文本:
log.error($content$, $params$);编辑变量
- 名称:
content 表达式:
groovyScript("def params = _2.collect {'入参:【'+it+' = {}】,e:'}.join(', '); return '\"{}调用异常 >> ' + (params.empty ? '' : params) + '\"'", methodName(), methodParameters())
名称:
params- 表达式:
groovyScript("def params = _1.collect {it}.join(', '); return 'methodName, ' + (params.empty ? '' : params) + ', e' ", methodParameters())
- 名称:
方法返回日志
缩写:
logr模板文本:
log.info(methodName + "结束调用,返回结果:{}", $result$);编辑变量
- 名称:
METHOD_NAME 表达式:
methodName()
名称:
result- 表达式:
variableOfType(methodReturnType())
- 名称:
或者
缩写:
logend模板文本:
log.info("{}结束调用,返回结果:{}", methodName, $result$);
方法日志
方法返回日志
缩写:
logi模板文本:
log.info(methodName + "");
或者
缩写:
loginfo模板文本:
log.info("{}", methodName);
效果
public String edit(@RequestParam(name = "id", defaultValue = "0") Long id) {String title;//mtString methodName = "edit() >> ";try {//logmlog.info(methodName + "开始调用 >> 入参:【id = {}】", id);//logrlog.info(methodName + "结束调用,返回结果:{}", title);//logilog.info(methodName + "");return title;} catch (Exception e) {//logelog.error(methodName + "调用异常 >> 入参:【id = {}】,e:", id, e);return "";}}
其它优化写法
| 缩写 | 模板文本 |
|---|---|
| tid | String traceId = UUID.randomUUID().toString().replace(“-“, “”); |
| mt1 | String methodName = String.format(“traceId: %s >> $METHOD_NAME$() >> “, traceId); |