freemarker

超给力,一键生成数据库文档-数据库表结构逆向工程

杀马特。学长 韩版系。学妹 提交于 2020-08-16 19:15:55
一、解决什么问题 数据库文档是我们在企业项目开发中需要交付的文档,通常需要开发人员去手工编写。编写完成后,数据库发生变更又需要手动的进行修改,从而浪费了大量的人力。并且这种文档并没有什么技术含量,被安排做这个工作的程序员往往自己心里会有抵触情绪,悲观的预期自己在团队的位置,造成离职也是可能的。如下面的这种文档的内容: 笔者最近在github上面发现一个数据库文档生成工具: screw (螺丝钉)。该工具能够通过简单地配置,快速的根据数据库表结构进行逆向工程,将数据库表结构及字段逆向生成为文档。 二、特点 简洁、轻量、设计良好 多数据库支持:MySQL、MariaDB、TIDB、Oracle、 SqlServer、PostgreSQL、Cache DB 多种格式文档: html、word、 markdwon 灵活扩展:支持用户自定义模板和展示样式修改(freemarker模板) 三、依赖库探究 mvn中央仓库查看最新版本 ,将如下的maven坐标引入到Spring Boot项目中去: <dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version>1.0.3</version> </dependency> 从maven仓库的编译依赖中可以看到,screw

Spring Boot 五种热部署方式,极速开发就是生产力!

百般思念 提交于 2020-08-16 12:16:29
作者:若离x 来源:my.oschina.net/ruoli/blog/1590148 1、模板热部署 在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下: Thymeleaf的配置: spring.thymeleaf.cache=false FreeMarker的配置: spring.freemarker.cache=false Groovy的配置: spring.groovy.template.cache=false Velocity的配置: spring.velocity.cache=false 2、使用调试模式Debug实现热部署 此种方式为最简单最快速的一种热部署方式,运行系统时使用Debug模式,无需装任何插件即可,但是无发对配置文件,方法名称改变,增加类及方法进行热部署,使用范围有限。 3、spring-boot-devtools 在 Spring Boot 项目中添加 spring-boot-devtools依赖即可实现页面和代码的热部署。详细用法可以参考这篇文章: Spring Boot 实现热部署 。 如下: <dependency> <groupId>org.springframework.boot<

springBoot使用freemarker生成html页面

走远了吗. 提交于 2020-08-16 02:49:23
背景:服务端有一个壳页面入口,页面包含了可简单的文件引用,静态文件的CDN域名(区分环境)、文件版本号(可能变更) 比如: test环境:<script src="//s1.test.xxcdn.com/xxx/dist/umi.js?v=1.0.1"></script> prod环境:<script src="//s1.prod.xxcdn.com/xxx/dist/umi.js?v=1.0.2"></script> 目标:最简单的方式给前端一个页面,同时,页面中的静态文件域名、版本号可作为参数,从后端写入页面; 方案:使用freemarker模板引擎 前提:springboot类型的应用 操作步骤: 第一步:引入freemarker模板引擎的jar <!-- freemarker模板引擎 --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.30</version><!-- 用最新的版本号 --> </dependency> 第二步:增加freemarker配置(application.yml),这里只有必要的配置 spring: freemarker: cache: false #是否需要缓存页面,因为版本号需要修改,所以,不能缓存

这就是Java代码生成器的制作流程

天涯浪子 提交于 2020-08-15 07:54:37
1. 前言 前几天写了篇关于 Mybatis Plus代码生成器 的文章,不少同学私下问我这个代码生成器是如何运作的,为什么要用到一些模板引擎,所以今天来说明下代码生成器的流程。 2. 代码生成器的使用场景 我们在编码中存在很多样板代码,格式较为固定,结构随着项目的迭代也比较稳定,而且数量巨大,这种代码写多了也没有什么技术含量,在这种情况下代码生成器可以有效提高我们的效率,其它情况并不适于使用代码生成器。 3. 代码生成器的制作流程 首先我们要制作模板,把样板代码的固定格式抽出来。然后把动态属性绑定到模板中,就像做填空题一样。所以在这个流程中模板引擎是最合适的。我们通过使用模板引擎的语法将数据动态地解析到静态模板中去,然后导出为编程中对应的文件就行了。 另外模板引擎有着丰富的绑定数据的指令集,可以让我们根据条件动态的绑定数据到模板中去。以 Freemarker 为例: 三元表达式: ${true ? 'checked': ''} 还有我们等下要用的遍历列表: <#list fields as field> private ${field.fieldType} ${field.fieldName}; </#list> 在Java开发中我们常用的模板引擎有 Freemarker 、 Velocity 、 Thymeleaf ,随着 Web

Elasticsearch日志数据监控报警

Deadly 提交于 2020-08-13 20:37:07
Github地址 | Gitee地址 介绍 frostmourne(霜之哀伤)是一个开源的Elasticsearch日志数据监控报警系统,用于帮助开发监控应用日志,现主要用于监控Elasticsearch数据。如果你现在使用Elastic stack(ELK)建立起了日志系统,却苦恼于没有一个配套日志监控系统,也许它能帮到你。 主要功能 Elasticsearch数据监控, 你只需要写一条查询就可以轻松搞定监控 多种数值聚合类型监控(count,min,max,avg,sum), 同比监控 HTTP数据监控, 表达式判断是否报警 UI功能,简单易用 监控管理,测试,另存。执行日志,历史消息。 灵活的报警消息freemarker模板定制,支持变量 多种消息发送方式(email,短信,钉钉(机器人),企业微信(机器人), HTTP请求) 多数据源(Elasticsearch集群)支持 Elasticsearch数据查询,分享,下载 报警消息附带日志查询短链接,直达报警原因 报警消息抑制功能,防止消息轰炸 每个监控都是独立调度,互不影响 自带账号,团队,部门信息管理模块,也可自己实现内部对接 集成LDAP登录认证 权限控制,数据隔离,各团队互不影响 在线demo 为了更快的理解本项目的作用,提供了一个接口全mock的静态站点供大家预览功能: 在线demo 在线demo更新不及时

springSecurity+oauth2实现权限认证系统(资源服务器与授权服务器分离,client信息入库,token存入redis持久化)

百般思念 提交于 2020-08-13 13:01:21
文章目录 一、前言 二、oAuth2授权码模式认证流程 三、权限认证系统的三个角色 四、demo实现的功能 五、技术点 1.SpringSecurity自定义登录页面,账密信息入库 配置自定义登录页面 账密信息入库 2.集成通用Mapper 六、认证服务器 1.配置client信息入库存储 2.配置access_token等令牌信息持久化到redis中 3.授权服务器提供的一些访问接口 七、资源服务器 1.受保护资源有关配置 2.资源服务器与授权服务器分离配置 八、客户端 1.访问授权服务器获取令牌 2.使用access_token来访问资源服务器 3.实现客户端访问指定接口完成资源服务器登录 九、完整流程演示 1.客户端登录: 2.跳转授权认证页面 3.完成授权认证 4.访问受保护资源 5.客户端访问指定接口完成资源服务器登录 十、项目地址 一、前言 本文章侧重实战,是为线上系统做的一个demo。适合对oauth2有一定理解后再阅读。 如果对oauth2理解还不够深入,建议先阅读 芋道 Spring Security Oauth2入门 来夯实一下基础。 这个demo主要实现了资源服务器与授权服务器分离,client信息入库,token信息在redis中持久化,demo的github地址会在文末贴出。 二、oAuth2授权码模式认证流程 首先来看授权码认证模式的一个流程图:

MybatisPlus-常用代码生成器(不生成简单增删改查逻辑代码)

六眼飞鱼酱① 提交于 2020-08-12 06:37:39
引入依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.1.tmp</version> </dependency> 添加模板依赖(mybaitsplus必须依赖一个模板freemarker/Velocity等都可以 必须要有) 3选一: <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.2</version> </dependency> --- Freemarker: <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.30</version> </dependency> --- Beetl: <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.1.6.RELEASE</version> <

SpringBoot2 整合FreeMarker模板,完成页面静态化处理

寵の児 提交于 2020-08-12 04:04:16
本文源码: GitHub·点这里 || GitEE·点这里 一、页面静态化 1、动静态页面 静态页面 即静态网页,指已经装载好内容HTML页面,无需经过请求服务器数据和编译过程,直接加载到客户浏览器上显示出来。通俗的说就是生成独立的HTML页面,且不与服务器进行数据交互。 优缺点描述: 静态网页的内容稳定,页面加载速度极快; 不与服务器交互,提升安全性; 静态网页的交互性差,数据实时性很低; 维度成本高,生成很多HTML页面; 动态页面 指跟静态网页相对的一种网页编程技术,页面的内容需要请求服务器获取,在不考虑缓存的情况下,服务接口的数据变化,页面加载的内容也会实时变化,显示的内容却是随着数据库操作的结果而动态改变的。 优缺点描述: 动态网页的实时获取数据,延迟性低; 依赖数据库交互,页面维护成本很低; 与数据库实时交互,安全控制的成本高; 页面加载速度十分依赖数据库和服务的性能; 动态页面和静态页面有很强的相对性,对比之下也比较好理解。 2、应用场景 动态页面静态化处理的应用场景非常多,例如: 大型网站的头部和底部,静态化之后统一加载; 媒体网站,内容经过渲染,直接转为HTML网页; 高并发下,CDN边缘节点代理的静态网页; 电商网站中,复杂的产品详情页处理; 静态化技术的根本:提示服务的响应速度,或者说使响应节点提前,如一般的流程,页面(客户端)请求服务,服务处理,响应数据

Springboot + Vue + shiro 实现前后端分离、权限控制

时光毁灭记忆、已成空白 提交于 2020-08-11 14:59:33
本文总结自实习中对项目的重构。原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelAndView,逐渐有了前后端分离的想法,由于之前,没有接触过,主要参考的还是网上的一些博客教程等,初步完成了前后端分离,在此记录以备查阅。 一、前后端分离思想 前端从后端剥离,形成一个前端工程,前端只利用Json来和后端进行交互,后端不返回页面,只返回Json数据。前后端之间完全通过public API约定。 二、后端 Springboot Springboot就不再赘述了,Controller层返回Json数据。 @RequestMapping(value = "/add", method = RequestMethod.POST) @ResponseBody public JSONResult addClient(@RequestBody String param) { JSONObject jsonObject = JSON.parseObject(param); String task = jsonObject.getString("task"); List<Object> list = jsonObject.getJSONArray("attributes"); List