IntelliJ IDEA 类代码模板注解自定义

本篇内容为大家提供的是IntelliJ IDEA 使用教程中的文件代码模板的使用,IntelliJ IDEA是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。 。感兴趣的同学可以参考学习下,具体内容如下:

文件代码模板的介绍

文件代码模板可以简单理解为:我们在项目中创建某些类型文件时,就已经在对应这些新文件中预设了代码内容。因为文字表达都带有点无力,所以下面用 Gif 动态图来演示。

  • 如上图 Gif 所示,IntelliJ IDEA 默认新建类自带的类注释格式一般不够友好或是规范,所以我们一般需要自己根据公司编码规范进行设置。
  • 如上图 Gif 所示,这是根据我自己的需求进行设置的类注释,这种注释方式会更友好。

根据演示我们应该已经很好地理解了文件代码模板是什么东西了。对此我们可以衍生出很多玩法,比如:我们的项目 Controller、Service、Dao 等常用新对象都是要各自继承某个类、实现某些接口或预设某些方法,也都可以通过这样的文件代码模板来实现。

文件代码模板的设置

  • 如上图标注 1 所示,文件代码模板支持的类型基本常见的文件类型都涵盖了。
  • 如上图标注 2 所示,这是 Java 文件模板新建的代码模板,其中 ${PACKAGE_NAME}、${NAME} 是 IntelliJ IDEA 预设的变量。
  • 如上图标注 3 所示,IntelliJ IDEA 的文件代码模板是可以使用 Velocity Template Language (VTL) 进行书写的。如图 2 上的#if … #end 和 #parse 都是 VTL 的语法。
  • 如上图标注 4 所示,介绍当前文件模板的一些信息,以及一些预设变量的作用介绍。
  • 如上图标注 5 所示,这四个按钮是文件代码模板的主要操作按钮,四个操作分别是:
  • Create Template 创建一个文件代码模板。
  • Remove Template 删除一个文件代码模板,标注 1 所示的这些预设模板是不允许删除的,只能能删除预设之外的新增的。
  • Copy Template 复制一个文件代码模板。
  • Reset To Default 对被修改的预设文件代码模板,还原到默认状态。
  • 如上图标注 1 所示,IntelliJ IDEA 还支持其他常见会新建的文件类型,基本上我们根本不用担心有不支持的文件类型,常用的基本都被涵盖了。
  • 如上图标注 1 所示,该 File Header 文件就是前面 Java 文件代码模板中引入语句中 #parse(“File Header.java”) 文件。
  • 如上图标注箭头所示,${DESCRIPTION} 是我们自己定义的变量,自定义变量格式有两种方式:$变量名 或 ${变量名}。
  • 自定义的变量在创建对应的文件时候就必须输入内容,这个在本文最上面的 Gif 演示中已经有体现了。
  • 如上图 Gif 所示,当我们需要用到一个固定值的自定义变量的时候并且该变量多个地方被引用,我们可以通过 VTL 语法的#set( $变量名 = “变量值内容” ); 来设置。
  • 因为 Code 模块改动的人不多,所以放在最后。我们是无法新建、删除 Code 里面的代码模板。
  • 如上图标注 1 所示,在我们通过快捷方式生成某个类的测试方法时候会自动调用此 Code 模板,所以我们可以解释该 Code 功能主要用在 IntelliJ IDEA 自动帮我们生成某些代码的时候引用的模板。

文件代码模板预设的变量

因为变量的命名太明了不过了,所以这里不多讲解,直接贴出官网的英文解释:

  • ${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 的文件类型预设的变量比上面的还多一点,具体可以查阅官网:

后续有很多开发填坑的文章发布,如果对你有帮助,请支持和加关注一下

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯Bugly的专栏

美女程序媛发福利,读懂ANR的trace文件So easy

想要分析ANR问题,读懂trace文件是关键。Trace文件到底是什么鬼?如何才能破解深藏其中的奥义? App的进程发生ANR时,系统让活跃的Top进程都进行了...

3615
来自专栏Seebug漏洞平台

利用 phar 拓展 php 反序列化漏洞攻击面

通常我们在利用反序列化漏洞的时候,只能将序列化后的字符串传入unserialize(),随着代码安全性越来越高,利用难度也越来越大。但在不久前的Black Ha...

1495
来自专栏C/C++基础

Linux命令(9)——tcpdump命令

tcpdump是一款类Unix/Linux环境下的抓包工具,允许用户截获和显示发送或收到的网络数据包。tcpdump 是一个在BSD许可证下发布的自由软件。

1193
来自专栏Golang语言社区

goroutine背后的系统知识

Go语言从诞生到普及已经三年了,先行者大都是Web开发的背景,也有了一些普及型的书籍,可系统开发背景的人在学习这些书籍的时候,总有语焉不详的感觉,网上也有若干流...

3484
来自专栏同步博客

Memcache存储机制与指令汇总

  memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

872
来自专栏用户2442861的专栏

深入剖析Socket实现

http://blog.csdn.net/zapldy/article/details/5813984

1062
来自专栏SDNLAB

OpenDaylight Lithium-SR2 Cluster集群搭建

目的 希望大家能够通过本教程对OpenDaylight集群的基本概念如shard/基本配置有所了解,感受OpenDaylight的High Availabili...

3485
来自专栏点滴积累

Jupyter(Python)中无法使用Cache原理分析

前言 最近需要在Jupyter中写一个类库,其中有一个文件实现从数据库中读取空间数据并加载为Feature对象,Feature对象是cartopy封装的geom...

3406
来自专栏Golang语言社区

Goroutine背后的系统知识

Go语言从诞生到普及已经三年了,先行者大都是Web开发的背景,也有了一些普及型的书籍,可系统开发背景的人在学习这些书籍的时候,总有语焉不详的感觉,网上也有若干流...

3476
来自专栏腾讯云Elasticsearch Service

Elasticsearch 底层系列之分片恢复解析

我们是基础架构部,腾讯云 CES/CTSDB 产品后台服务的支持团队,我们拥有专业的ES开发运维能力,为大家提供稳定、高性能的服务,欢迎有需求的童鞋接入,同时也...

8.4K0

扫码关注云+社区

领取腾讯云代金券