编程随笔 编程随笔
  • 前端
  • 后端
  • 嵌入式
  • 星球项目
  • 开源项目
  • 海康AGV
  • 四向车
  • 工具类
  • 项目仓库

    • 部署仓库 (opens new window)
    • 代码仓库 (opens new window)
  • vuepress插件

    • 自动生成导航栏与侧边栏 (opens new window)
    • 评论系统 (opens new window)
    • 全文搜索 (opens new window)
    • 选项卡 (opens new window)
    • 自动生成sitemap (opens new window)
  • 自主开发插件

    • 批量操作frontmatter (opens new window)
    • 链接美化 (opens new window)
    • 折叠代码块 (opens new window)
    • 复制代码块 (opens new window)

liyao52033

走运时,要想到倒霉,不要得意得过了头;倒霉时,要想到走运,不必垂头丧气。心态始终保持平衡,情绪始终保持稳定,此亦长寿之道
  • 前端
  • 后端
  • 嵌入式
  • 星球项目
  • 开源项目
  • 海康AGV
  • 四向车
  • 工具类
  • 项目仓库

    • 部署仓库 (opens new window)
    • 代码仓库 (opens new window)
  • vuepress插件

    • 自动生成导航栏与侧边栏 (opens new window)
    • 评论系统 (opens new window)
    • 全文搜索 (opens new window)
    • 选项卡 (opens new window)
    • 自动生成sitemap (opens new window)
  • 自主开发插件

    • 批量操作frontmatter (opens new window)
    • 链接美化 (opens new window)
    • 折叠代码块 (opens new window)
    • 复制代码块 (opens new window)
  • 常用软件

    • vuepress-plugin-element-ui
    • pandoc使用
    • meilisearch部署
    • cloudreve部署
    • zabbix部署
    • 常用网址
    • git使用
    • 安装 acme.sh
    • 中央仓库上传指南
    • Java文件转换为Velocity模板
      • 1. 文件扩展名
      • 2. 替换静态内容为动态变量
      • 3. 添加条件判断和循环
      • 4. 具体示例
      • 5. 处理字段和属性
      • 6. 条件导入
      • 7. 注意事项
  • 工具类
  • 常用软件
华总
2025-04-06
0
0
目录

Java文件转换为Velocity模板原创

将Java文件转换为Velocity模板需要进行以下几个方面的修改

# 1. 文件扩展名

首先需要将文件扩展名从.java改为.java.vm,表示这是一个Velocity模板文件。

# 2. 替换静态内容为动态变量

需要将Java文件中的静态内容替换为Velocity变量和指令。根据当前仓库中的模板,常用的Velocity变量有:

  • ${packageName} - 包名的基础部分
  • ${moduleName} - 模块名称
  • ${subpackageName} - 子包名
  • ${entityName} - 实体类名称
  • ${lowerFirstEntityName} - 首字母小写的实体类名称
  • ${businessName} - 业务名称
  • ${author} - 作者名称
  • ${date} - 日期
  • ${tableName} - 数据库表名
  • ${fieldConfigs} - 字段配置列表

# 3. 添加条件判断和循环

使用Velocity的条件判断和循环指令来处理动态内容:

#if(条件)
    // 条件成立时的内容
#else
    // 条件不成立时的内容
#end

#foreach($item in $collection)
    // 循环内容,可以使用$item访问当前项
#end
1
2
3
4
5
6
7
8
9

# 4. 具体示例

以下是一个具体的转换示例

# 原始Java文件:

package com.example.project.controller;

import com.example.project.entity.User;
import com.example.project.service.UserService;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;

@RestController
@RequestMapping("/user")
public class UserController {
    
    private UserService userService;
    
    // 其他代码
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 转换后的Velocity模板:

package ${packageName}.${moduleName}.controller;

import ${packageName}.${moduleName}.model.entity.${entityName};
import ${packageName}.${moduleName}.service.${entityName}
Service;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;

@RestController
@RequestMapping("/${lowerFirstEntityName}")
public class ${entityName}Controller {
    
    private ${entityName}Service ${lowerFirstEntityName}Service;
    
    // 其他代码
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 5. 处理字段和属性

对于实体类中的字段和属性,需要使用#foreach循环遍历${fieldConfigs},如当前仓库中的entity.java.vm模板所示:


#foreach($fieldConfig in ${fieldConfigs})
    #if(!$fieldConfig.fieldName.equals("id") && !$fieldConfig.
    fieldName.equals("createTime") && !$fieldConfig.fieldName.
    equals("updateTime")&& !$fieldConfig.fieldName.equals
    ("isDelete"))
        #if("$!fieldConfig.fieldComment" != "")
    /**
     * ${fieldConfig.fieldComment}
     */
        #end
    private ${fieldConfig.fieldType} ${fieldConfig.fieldName};
    #end
#end
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 6. 条件导入

根据实体类的字段类型,可能需要条件导入某些包:

#if(${hasLocalDateTime})
import java.time.LocalDateTime;
#end
#if(${hasBigDecimal})
import java.math.BigDecimal;
#end
1
2
3
4
5
6

# 7. 注意事项

  1. Velocity变量使用${变量名}格式
  2. Velocity指令使用#指令名格式
  3. 注意转义特殊字符,如$和#
  4. 使用$!{变量名}可以在变量为null时不输出任何内容
  5. 在模板中可以使用Velocity的内置函数,如$entityName.toLowerCase()
中央仓库上传指南

← 中央仓库上传指南

最近更新
01
node后端部署 原创
04-10
02
jFlash使用 原创
03-24
03
中央仓库上传指南 原创
03-23
04
模板生成工具 原创
02-18
05
RTC实时时钟 原创
02-12
更多文章>
Copyright © 2023-2025 liyao52033  All Rights Reserved
备案号:鄂ICP备2023023964号-1    
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式