IDEA中使用Live Templates动态模板生成main方法/log日志方法

我们在开发过程中,往往需要配置一些模板,以节省时间,帮助我们快速开发。这里以打印log日志的模板为主进行说明。log日志的模板为如下所示。我们要实现的功能是输入log就能自动补全整个语句。

private static final Logger LOGGER = LoggerFactory.getLogger(DemoMain.class);

效果图:

步骤:

1.File->Settings->Editor->Live Templates 然后点击“+”,添加一个Template Group,自己取个名字,然后添加一个Live Templates

如下添加main方法:

 然后在Define中,选择应用于Java即可。

如下添加log

Abbreviation为缩略词,表示我们需要提示的词

Template text为模板,其中的类名用$CLASS$替换

2.编辑变量

在上面配置后需要对变量进行编辑,Edit variables,将CLASS用className()表达式表示,以读取类名

3.将变量应用于java声明处,即可完成模板的定义。

<think>嗯,用户想知道如何在IntelliJ的Live Templates使用Groovy脚本生成动态内容。首先,我需要回忆一下Live Templates的功能,它允许用户自定义代码片段,通过缩写快速生成重复的代码结构。而Groovy脚本在这里可以动态生成内容,比如根据上下文变量来调整生成的代码。 首先,我应该确认用户可能需要的步骤。根据引用[3],进入Live Templates配置页的方法是Ctrl + Shift + S,然后找到Editor -> Live Templates。所以第一步应该是指导用户如何添加一个新的Live Template,并选择Groovy作为脚本语言。 然后,用户需要了解如何定义变量,并在变量中使用Groovy脚本。例如,引用[3]中提到可以使用内置变量如$DATE$,但通过Groovy可以更灵活。比如,生成当前时间戳或者根据类名动态生成方法名。这时需要引用[2]提到的Groovy脚本的简单性和兼容性,说明如何嵌入脚本到变量中。 接下来,用户可能需要具体的示例。比如,创建一个Spring Boot配置项的注释,自动生成带时间戳的作者信息。或者根据方法参数生成日志语句,这里可以结合引用[4]中的属性配置,说明如何动态引用相关属性。 还要注意Applicable的作用范围,比如Java、XML等,确保模板在正确的上下文中生效。引用[1]和[3]都提到了作用范围的选择,这很重要,否则模板可能无法在预期的文件中使用。 另外,可能需要解释Groovy脚本如何访问编辑器上下文变量,比如__CLASS_NAME__或__METHOD_NAME__,这些在引用[3]中有提到。用户需要知道这些变量是如何被获取并传递给脚本的,以便在模板使用。 最后,要提醒用户测试模板使用Tab键跳转变量,并检查生成的代码是否符合预期。可能还需要提到常见问题,比如脚本语法错误或者变量未正确绑定,这时候可以参考引用[2]的Groovy脚本调试方法。 总结步骤应该是:创建模板、定义变量、编写Groovy脚本、设置作用范围、测试和使用。同时,提供两个具体示例,帮助用户更好地理解应用场景,比如动态注释和日志输出,这样用户可以举一反三应用到自己的项目中。</think>### 分步说明:使用 Groovy 脚本在 Live Templates生成动态内容 #### 步骤 1:创建基础模板 1. 打开 `Settings` > `Editor` > `Live Templates` 2. 点击右侧 `+` 新建模板组(如命名为 MyGroovyTemplates) 3. 在组内新建模板,设置缩写(如 `conf`)和描述(如 "动态配置注释模板")[^3] #### 步骤 2:定义动态变量 ```groovy groovyScript(" def now = new Date() return '创建于:' + now.format('yyyy-MM-dd HH:mm:ss') + '\\n' ") ``` 将此脚本绑定到变量 `$TIMESTAMP$`,生成带时间戳的注释内容[^2] #### 步骤 3:关联上下文变量 ```groovy groovyScript(" def params = _1.collect { it + ' : 待填充' }.join('\\n* ') return '* 参数列表:\\n* ' + params ", methodParameters()) ``` 此脚本可绑定到 `$PARAMS_HELPER$`,自动提取方法参数生成参数说明 #### 步骤 4:模板内容组合 ```java /** $TIMESTAMP$ * @作者: ${USER} * 类名: $CLASS_NAME$ * 功能: $END$ */ ``` #### 步骤 5:设置作用域 在 `Applicable contexts` 中选择 `Java -> Declaration`,确保模板仅在类声明位置生效[^1] ### 典型应用场景示例 #### 示例 1:动态配置注解 ```groovy groovyScript(" def props = ['spring.datasource.url', 'spring.redis.host'] return '// 自动生成配置项\\n' + props.collect { '@Value(\"' + it + '\")' }.join('\\n') ") ``` 输入缩写 `conf` 生成: ```java // 自动生成配置项 @Value("spring.datasource.url") @Value("spring.redis.host") ``` #### 示例 2:智能日志输出 ```groovy groovyScript(" def methodName = _1 def params = _2.collect { it + ' = {}' }.join(', ') return 'log.info(\"' + methodName + '执行中, ' + params + '\");' ", methodName(), methodParameters()) ``` 输入 `logm` 生成: ```java log.info("getUserInfo执行中, userId = {}, type = {}"); ``` ### 高级技巧 1. **条件判断**:通过 `if-else` 实现不同参数数量的差异化输出 ```groovyScript(" if (methodParameters().size() > 3) { return '// 建议拆分多参数方法' } else { return '// 参数校验' } ") ``` 2. **文件交互**:读取项目中的配置文件 ```groovyScript(" new File(projectPath + '/.author').text.trim() ") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值