引言
“我不是在教你学坏,而是教你如何提高生产效率。” ----------- 牛顿
人类社会能够一直进步发展出现在的文明世界,最大的一个原因就是这个世界上懒人居多,懒人为了偷懒就需要提高生产效率,效率提高节省下来的时间才能创造出艺术、娱乐以及更高效率的科学技术。程序员们如何提高生产效率?创造一个自己为自己干活!
今天给大家介绍一个代码生成神器Velocity,Velocity作为一款基于Java的强大模板引擎,其拥有简洁的设计和强大的功能,新手也能很快上手。从此以后你就可以摆脱无聊且繁杂的crud代码,给自己留下诗和远方的闲暇时光。
效果展示
话不多说,以下截图是我利用Velocity写的一个代码生成的工具,支持Mysql或Pgsql两种数据库。新项目开发的时候,你只需要设计好你的表结构,在界面上填写包名、地址后缀、模块名等信息即可。剩下的事情交给Velocity,它会帮你完成从controller、service、dao的所有通用接口。
生成代码压缩包里的目录结构,前后端代码都有。
以下是适用于Mybatis框架的Velocity模板生成的代码文件。Velocity的优点之一就是它将生成代码需要的数据模型与模板解耦,所以对模板的修改可以做到非常的丝滑,数据模型做好了基本上不用做大的调整,剩下的就是DIY自己的模板文件。
也许有人会质疑说,idea中不是有很多代码生成插件吗?我认为别人写的总归没有那么灵活,我自己决定使用Velocity也是因为工作中遇到了一个开源项目需要二开,在使用别人的个性化框架期间,一个一个新建Java文件太费鼠标了,所以我才决定自己写一套模板。
Velocity
Velocity的核心理念是遵循Model-View-Controller(MVC)设计模式,它致力于将视图逻辑与业务逻辑彻底分离。它允许前端开发者使用一种专门的语法来引用预定义好的数据模型,而无需直接编写Java代码。这种设计不仅极大地简化了前端开发者的工作量,也使得后端开发者能够专注于后端逻辑的优化与实现,两者并行工作,极大地提升了开发效率。
Maven 依赖如下:
<properties>
<velocity-tools-version>2.0</velocity-tools-version>
</properties>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>${velocity-tools-version}</version>
</dependency>
Velocity原理
Velocity引擎的工作流程大致如下:
-
开发者创建包含占位符和控制结构的模板文件;
-
这些模板通过Velocity引擎解析时,引擎会根据提供的数据模型动态替换模板中的占位符;
-
生成所需的HTML页面、Java文件