`

spring boot 利用freemarker生成简单CURD接口

 
阅读更多

让我们先直接来看可以使用结果



 这是任意一个示例项目,我们利用swagger展示出了项目中的某些API,如何使用springboot及swagger以及JPA不在本项目过多叙述,不懂的朋友可以自行百度 or Google。

 

现在问题来了,需要添加一组新的接口,新的接口需要基本的CURD。传统的办法是ctrl+c v。

这他么完全是在侮辱程序员智商啊!所以利用模板技术,我们可以实现下面的效果。

 

好打开我们自动生成项目的界面。

 界面自己写的,略丑,毕竟不是专业前端。

 

按照需要填写字段

 我设置了一个person,其中字段有name和birthday,点击自动生成。OK提示生成成功。

在我们重新编译上面的示例项目,刷新swagger界面。

 我曹,api直接已经出现在swagger界面上了,而且是真实可用的接口

当然数据库也是自动建好的(JPA的功能)



 是不是特别方便,省去了很多复制粘贴的重复性工作。当然这适用于简单的实体的CURD。但是因为是生成的源代码,当然自己想加什么字段或者映射都是非常灵活的。

 

***********************************装逼分割线*******************************

 

先来说原理,核心原理是freemarker的模板技术,不懂得朋友可以搜下

我们直接上实体类的template

package ${packageName};


import ${project}.entity.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
<#if defaultIdConfig = true>
import org.hibernate.annotations.GenericGenerator;
</#if>
<#if defaultMySqlConfig = true>
import javax.persistence.*;
</#if>
import java.util.*;
import java.io.Serializable;
<#list attrs as attr>
    <#if attr.packageName??>
import ${attr.packageName};
    </#if>
</#list>
/**
* Created by LiaoKe on ${date}
* From Automatic
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper=false)
<#if defaultMySqlConfig = true>
@Entity
    <#if tableName??>
@Table(name=" _${tableName}")
    <#else>
@Table(name=" _${className}")
    </#if>
</#if>
public class ${className} extends EntityCURD implements Serializable{

    <#if defaultIdConfig = true>
        <#if defaultMySqlConfig = true>
    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
        </#if>
    private String id;

        <#if defaultMySqlConfig = true>
    @Column(updatable = false) // 默认不修改此数据
        </#if>
    private Date createDate;
    </#if>

    <#list attrs as attr>
        <#if attr.annotationFlag = true>
    //TODO Miss Annotations This message come from Automatic
        </#if>
    private ${attr.fieldType} ${attr.fieldName}; //${attr.describe}

    </#list>


}

 

具体的freemarker语法不多叙述,按照以上模板生成的实体如下

package com.note.entity.person;


import com.note.entity.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.*;
import java.io.Serializable;
/**
* Created by LiaoKe on Wed Jul 05 10:42:06 CST 2017
* From Automatic
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper=false)
@Entity
@Table(name=" _person")
public class Person extends EntityCURD implements Serializable{

    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    private String id;

    @Column(updatable = false) // 默认不修改此数据
    private Date createDate;

    private String name; //姓名

    private Date birthday; //生日



}

 其中使用了lombok,无需再写set get,代码比较简洁,是个奇巧淫技.....

 

基本思路就是利用模板技术,实现CTRL CV

 

下面试githup地址

 

https://github.com/liaoke0123/automatic

 

具体实现不在过多叙述

 

 

 

 

  • 大小: 54.3 KB
  • 大小: 27.3 KB
  • 大小: 37.3 KB
  • 大小: 36.3 KB
  • 大小: 4.6 KB
分享到:
评论

相关推荐

    使用Spring boot + FreeMarker 实现代码生成功能的Demo

    使用Spring boot + FreeMarker 实现代码生成功能,完整案例可以查看 eladmin 项目,教程地址: https://www.ydyno.com/archives/1177.html

    基于spring boot freemarker代码生成器

    代码生成器支持model、Mapper、Dao、Service、ServiceImpl、Controller 一次性的生成,支持同时生成多张表,此代码生成器依赖JAR包比较少,除了必用Freemarker 和JDBC之外基本上完全个人编写

    spring-boot-freemarker整合源码

    spring-boot-freemarker 整合源码

    spring boot mybatis freemarker整合项目

    《Spring Boot、MyBatis与Freemarker的深度整合指南》 在当今的Java开发领域,Spring Boot以其简洁的配置和强大的功能集成为开发者所喜爱。而MyBatis作为轻量级的持久层框架,提供了灵活的SQL操作,极大地提高了...

    SpringBoot+JPA+Freemarker 生成动态SQL

    结合SpringBoot和JPA,我们可以创建一个服务,该服务使用JPA的Repository接口与数据库进行交互,并通过Freemarker生成动态SQL。具体步骤如下: 1. **设置项目**:创建一个SpringBoot项目,添加Spring Data JPA和...

    Spring boot集成freemarker,swagger,druid,mybatis

    在Spring Boot中,Freemarker被用作视图层的技术,通过简单的模板语法,开发者可以将数据模型与页面展示分离,提高代码的可维护性。配置Freemarker通常涉及以下几个步骤: 1. 添加Freemarker依赖到`pom.xml`。 2. ...

    spring-boot-starter-freemarker-1.3.3.RELEASE.jar

    boot-starter-redis-1.3.3.RELEASE"这两个组件是Spring Boot生态系统中的重要组成部分,它们极大地简化了开发者的工作,使得构建基于Freemarker的动态页面和利用Redis进行缓存操作变得简单易行。通过深入理解和熟练...

    Spring boot + Mybatis + Freemarker

    Spring Boot简化了Spring应用的初始搭建以及开发过程,MyBatis则是一个轻量级的持久层框架,用于处理数据库操作,而FreeMarker则是一个动态模板引擎,用于生成HTML或者其他格式的输出。下面将详细阐述这三个框架的...

    使用freeMarker模板和Spring boot后端API接口实现查询用户列表的功能。

    在本项目中,我们将利用FreeMarker模板语言和Spring Boot后端API接口来实现一个用户列表的查询功能。下面,我将详细讲解这个过程中的关键知识点。 1. **FreeMarker模板**: FreeMarker是一个Java模板引擎,它能够...

    Java项目中利用Freemarker模板引擎导出--生成Word文档

    Spring Boot,Freemarker 编辑好格式的Word文档 1份 将Word文档里需要填充的地方加上占位符${xxxx} 将编辑好占位符的文档另存为XML格式Word 2003 XML文档,并重命名,用英文命名 利用文本编辑器打开该XML文件检查,...

    spring boot资料以及项目

    此外,Spring Boot还集成了Thymeleaf、FreeMarker等模板引擎,用于构建动态网页。 在Web开发方面,Spring Boot提供了Spring MVC框架,用于处理HTTP请求。资料中可能会有RESTful API设计、WebSocket、Swagger接口...

    Spring Boot 系列教程 freemarker导出word下载

    在本教程中,我们将深入探讨如何使用Spring Boot和FreeMarker模板引擎来生成Word文档并进行下载。Spring Boot作为Java开发的快速启动框架,简化了配置和集成,而FreeMarker则是一个强大的模板语言,用于动态生成HTML...

    基于spring boot 2集成hibernate及freemarker的简单实例

    通过Spring Boot 2、Hibernate和FreeMarker的集成,你可以创建一个轻量级的、面向对象的Web应用,其中数据访问层使用Hibernate简化数据库操作,而视图层利用FreeMarker生成动态HTML。这个简单的实例为初学者提供了一...

    Spring Boot实战派(源码)

    《Spring Boot实战派》源码提供了丰富的学习材料,旨在帮助开发者深入理解并熟练掌握Spring Boot这一流行的Java后端开发框架。Spring Boot简化了Spring应用程序的初始设置和配置,使得开发人员能够快速构建可运行的...

    基于Java Spring Boot的代码生成器平台.zip

    基于Java Spring Boot的代码生成器平台 项目概述 本项目是一个基于Java Spring Boot框架的代码生成器平台,旨在为开发者提供一个高效、灵活的代码生成解决方案。通过该平台,用户可以在线搜索、使用、制作和分享...

    spring boot 2.0.1_freemarker_redis

    本项目基于Spring Boot 2.0.1版本,整合了Mybatis、Redis以及Freemarker模板引擎,实现了用户登录注册功能,为我们提供了一个高效且易于维护的Web应用基础架构。 一、Spring Boot 2.0.1概述 Spring Boot是Spring...

    spring-boot-starter-freemarker-1.5.4.RELEASE.jar

    spring-boot-starter-freemarker-1.5.4.RELEASE.jar

    Spring Boot 2 Cookbook 第二版

    本书首先会讲解Spring Boot 2的基础概念,包括如何创建一个新的Spring Boot项目、理解起步依赖以及如何利用Spring Initializr快速初始化项目。接下来,你将学习到Spring Boot的核心组件,如自动配置机制,它能够根据...

    利用FreeMarker生成word文件例子

    以下是一个简单的示例,展示如何使用FreeMarker生成Word文档: ```java import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import ...

    java利用freemarker生成word.pdf

    Java 利用 Freemarker 生成 Word.pdf 在本资源中,我们将学习如何使用 Java 和 Freemarker 生成 Word 文档,并将其导出为 PDF 文件。 Freemarker 是一个基于模板的生成文档的开源库,能够将数据和模板结合生成最终...

Global site tag (gtag.js) - Google Analytics