- 博客(41)
- 资源 (3)
- 收藏
- 关注
原创 Ant Design Vue 中a-upload组件通过axios实现文件列表上传与更新回显的前后端处理方案
前言在企业应用的快速开发中,我们需要尽快的完成一些功能。如果您使用了Ant Design Vue,在进行表单的文件上传相关功能开发的时候,您肯定迫不及待地需要找到一篇包治百病的文章,正是如此,才有了该文的诞生,愿以此文解君忧。方案设计前端方案设计重写a-upload的文件上传方式,使用axios来进行上传选择一个文件后立即进行上传,前端记录上传成功后的name和uid,并构建一个Fil...
2020-04-11 11:03:26
8633
原创 Spring中获取代理对象的目标类Class及Class中的泛型参数的方法
在Spring里如果你通过AplicationContext获取Bean实例,你拿到的可能是一个被Spring代理的对象实例,如果你需要获取这个代理对象的目标类Class该怎么做呢?也许你百度了半天找到的解决方案大都是要自己写上一大段蹩脚的代码,忘了那个过时的方案吧,只需要调用Spring的AopUtils,一行代码搞定。AopUtils.getTargetClass(yourObject...
2020-04-11 11:01:12
3144
原创 Java程序员自动化指南
一、背景在Java web开发中,虽然Spring boot已经帮助我们简化了很多工作,但项目中庞杂的业务仍然需要自己去编写较多的 entity,vo,Mapper,Service, Controller 代码等,那么我们有没有什么办法来简化这整个开发流程呢?二、工具选型在尝试了部分市场较为主流的自动化工具后,还是选择了diboot-devtools这个开发者工具 ,因为她:专门为spr...
2020-04-11 10:58:52
358
1
原创 如何在父类中获取子类泛型的Class
假如你定义了一个有泛型的Base类,如下BaseClass<DO, VO>代码示例,如何在BaseClass中获取到子类对应的DO、VO的class对象呢?class BaseClass<DO, VO> { Class<DO> doClass; Class<VO> voClass; ...}1. 传统方式:通过参数传递...
2019-11-21 14:38:18
1107
2
原创 mybatis-plus 注解实现多表关联查询的最佳实践
在之前一篇文章 MyBatis多表关联的无SQL通用方案 中我们提到了注解绑定关联查询的实践方案,这里我们再汇总梳理一下常用开发场景中需要涉及到 关联 的场景以及其要支持的绑定方式。1. 注解自动绑定数据字典(自定义枚举)的显示值Label开发过程中的枚举值,比如用户状态(ACTIVE:激活,LOCKED:锁定 …)、身份证类型等,我们会将其名称name和值value定义在数据字典表,以支...
2019-11-09 14:10:05
5899
2
原创 vue中get请求如何传递数组参数
前言: vue中在与后端进行数据交互时,使用axios发送请求,不做配置直接使用get请求传递数组类型参数的时候,后端是无法接收数据的,需要对axios一些简单的配置才能让后端完美的接收数组1、问题示例代码let params = { statusList: ['OVERDUE', 'DELAY'] } ...
2019-11-09 14:09:19
5409
1
原创 draw.io 一款媲美Visio的免费流程绘制工具
推荐一款功能强大好用的免费绘图工具 draw.io,可以绘制流程图、架构图、网络拓扑图、E-R图、PPT商务图表等,支持在线绘制和桌面版。使用步骤非常简单,以在线绘制为例:1. 打开网站 https://www.draw.io/2. 创建图表(可以切换语言)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传3. 选择需要绘制的图表[外链图片转存失败,源站可能有...
2019-11-09 14:07:42
1015
原创 Java代码生成的设计方案与实践
diboot devtools 2.0 已经发布上线,实现了精简内核+后端开发助理。在此把我们目前代码生成部分的设计思路梳理一下,以便需要的朋友少走一些弯路。1. 编程技术的发展趋势最近观看《美国工厂》的感触:在传统制造业,当生产线的工人成本高昂效率低下的时候,企业管理者便会开始探寻降本增效之道,自动化便是首选的解决方案。软件工程类似于建筑工程有着其自身的复杂度,但即便是像更复杂的汽车制...
2019-11-09 14:04:14
244
原创 CDN开启了HTTPS,源站是否必须配置HTTPS?
背景:在上CDN之前,源站服务器的情况是:安装了SSL,配置了HTTPS,并且已经正常运行了一段时间。因为想要提高访问速度,决定上CDN,开启HTTPS。这时,产生了疑问:源站上的HTTPS配置,是否仍需保留?跟CDN上开启的HTTPS有什么关系呢?以阿里云ECS为例,进行说明:控制台配置打开控制台 --> 产品与服务 --> 存储与CDN --> CDN1.添加域...
2019-09-28 19:50:15
1174
原创 Docker同时安装MySQL和MariaDB
MySQL和MariaDB的关系MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。看完MySQL和MariaDB的关系,我们一定会想:既然两者有这么紧密的关系,那么同时安装、启动的时候,是否会有冲突呢?答案是肯定的,比如:`本文主要讲解的端口号`。...
2019-09-28 15:46:07
552
原创 CDN开启了HTTPS,源站是否必须配置HTTPS?
背景:在上CDN之前,源站服务器的情况是:安装了SSL,配置了HTTPS,并且已经正常运行了一段时间。因为想要提高访问速度,决定上CDN,开启HTTPS。这时,产生了疑问:源站上的HTTPS配置,是否仍需保留?跟CDN上开启的HTTPS有什么关系呢?以阿里云ECS为例,进行说明:控制台配置打开控制台 --> 产品与服务 --> 存储与CDN --> CDN1.添加域...
2019-08-30 18:13:02
2166
原创 各数据库(MySQL、PostgreSQL、Oracle、MsSQL)有关自增字段的设置
在数据库设计过程中,我们通常会把数据库表中的ID字段设置成自增。下面以常用的数据字典表为例,说明如何在各数据库下设置自增字段。MySQLMySQL数据库只需要在目标字段上添加AUTO_INCREMENT,并且为表设置AUTO_INCREMENT=x。x:自增开始的数字。参考示例:CREATE TABLE `dictionary` ( `id` int(10) unsigned N...
2019-08-29 11:29:23
458
原创 使用sql获取各数据库(MySQL、PostgreSQL、Oracle、MsSQL)的表结构
通常我们提到数据库表结构的时候,比较关心的几个属性:字段名称、类型、长度、是否主键、是否自增、是否为空、默认值、备注。那么,使用SQL语句获取这些属性,在各主流数据库下是什么样的呢?MySQL数据库作为时下最流行的数据库,MySQL的获取SQL是最简单的。一般我们用下面一行语句就能搞定:SHOW FULL COLUMNS FROM xxx;当然,也可以用MySQL自带的数据库i...
2019-08-28 15:59:41
488
原创 在vue-cli3.0中自定css、js和图片的打包路径
前言我们有时候因为一些特殊需求,可能需要将js/css/img等资源文件都打包到根路径下,但vue-cli3.0的路径配置中仅有** assetsDir**配置项能够配置所有的静态文件所在的文件夹,并不能针对css/js/img等资源文件分别来做设置,那么请看我如何尝试的吧!分析众所周知,vue-cli3.0使用了webpack进行打包处理,那么我们是否可以拿到目前打包默认的一些webp...
2019-08-28 15:58:17
1260
原创 为你的组件开发Spring Boot Starter
如果你开发了一个组件/模块,提供给其他项目使用,那你还需要附带一份配置说明: 依赖哪些jar、设置哪些配置参数、如何初始化入口类、以及ComponentScan和MapperScan需要加入哪些路径... 无疑增加了上手门槛。如何能让组件/模块自身完成自动配置呢?开发对应的Spring Boot Starter。开发Starter的步骤1. 新建一个Maven项目指定你的starter...
2019-08-07 22:34:24
211
原创 CentOS 7虚拟机安装Docker
Windows10家庭版无法安装Docker,可以升级到Windows专业版再安装 或者 使用虚拟机的CentOS系统安装。本文以CentOS 7.6虚机 + Docker 18.06(为了运行Rancher)为例,介绍具体的安装步骤。1. 安装CentOS虚拟机1.1 官方下载并安装WMware Player1.2 下载CentOS镜像以CentOS 7.6为例,标准版下载路...
2019-08-07 22:33:18
247
原创 如何通过Logstash同步多表关联数据至Elasticsearch
如果你对使用Logstash保持Elasticsearch与数据库同步方案还不是很熟悉,建议先花点时间精读它。上面的文章以单表同步场景为例,清楚讲述了如何通过JDBC同步数据至ES,而对于实际开发中经常出现的多表关联同步并未提及,以下是我针对多表关联同步的趟坑过程希望对你有所帮助。数据库表的约定原则同步单表时我们对于表字段的约定:表中要有主键字段(如id),最近变更时间字段(如m...
2019-08-07 22:32:19
1515
1
原创 如何使用Logstash保持Elasticsearch与数据库同步
在寻找“数据库同步数据到Elasticsearch”实现方案过程中,发现了这篇6月份发布的非常棒的博文,一篇文章讲清楚了完整的方案,同时找到了中文译文,让看到的朋友可以少走弯路。官网原文:How to keep Elasticsearch synchronized with a relational database using Logstash作者: Alex Marquardt中文译...
2019-08-07 22:31:00
221
原创 Windows环境安装Logstash和Logstash-input-jdbc
本文为Windows环境下的相关安装示例,适用于需要用Logstash和Logstash-input-jdbc将数据从数据库导入到Elasticsearch中的场景。安装步骤0. 安装JDK 8及Elasticsearch安装JDK8并配置JAVA_HOME环境变量;安装Elasticsearch并启动;1. 安装Logstash1.1 下载与你的Elasticsearch版...
2019-07-22 21:45:01
607
原创 解决java发邮件中文名太长乱码问题
当我们使用commons-email包或者javaMail发送邮件带有附件后,可能会出现较长的中文名乱码的情况,之后我们采用网上大多数人说的MimeUtility.encodeText()对文件名进行处理,然鹅,并不能解决问题。文件名处理 如下设置附件名并发送邮件,经测试,在Mac电脑上自带邮箱客户端文件名正常,Mac端网友邮箱客户端显示未命名,手机网易邮箱客户端附件名异常以.bin结尾...
2019-07-20 09:51:28
593
原创 如何在企业各团队间推广开发规范?
前些日在阿里技术公众号回复了一个“开发规范如何推广”的问题,获得了蛮多点赞。故写此一篇文章细讲一下我们的推广方式,给困惑的朋友贡献一点思路。开发规范很重要领导要一盘西红柿炒蛋,交给A,B,C几个团队去实现。团队A没控制好火候把鸡蛋炒老了,团队B只放了糖未放盐,团队C选用了已经馊了的西红柿... 领导大怒: “我们的愿景是做全国连锁餐饮,这么搞下去很快就完蛋!”,团队leader也委屈,没人...
2019-07-09 10:48:45
235
原创 Gradle项目引入Lombok
接前面一篇文章《Lombok常用注解的使用总结》这里主要讲解,如何在Gradle项目中引入Lombok依赖。以上,Lombok官网提供了两种方式:Lombok Gradle插件 添加Lombok依赖我们使用第二种方式,先对Gradle的两个内置作用域做简单说明:compileOnly:只编译时有效,不参与打包。代替旧版本的providedannotationProces...
2019-07-09 10:48:32
4499
原创 利用Lambda实现通过getter/setter方法引用拿到属性名
很多开发场景需要用到Java Bean的属性名,直接写死属性名字符串的形式容易产生bug(属性名一旦变化,IDE不会告诉你你的字符串需要同步修改)。JDK8的Lambda可以通过方法引用简化代码,同样也可以通过getter/setter的方法引用拿到属性名,避免潜在的bug。期望实现效果// 传统方式:hard code写死属性名// String ITEM_NAME = "orgNa...
2019-07-09 10:48:24
1035
原创 Spring Cloud Config2.x 版本使用webhooks无法刷新client配置的解决方案
前言:本次开发环境为SpringBoot 2.1.4.RELEASE、SpringCloud Greenwich.SR1、SpringCloudConfig 2.1.1.RELEASE发现问题使用config手动通过访问/actuator/bus-refresh可以正常刷新,但是通过配置webhooks访问/monitor无法刷新配置。解决问题官方文档排查https://clo...
2019-07-09 10:46:28
134
原创 Mybatis单表CRUD与多表关联的无SQL通用方案_2: 无SQL实现关联查询的自动绑定
上一篇无SQL实现单表CRUD中我们已经通过Mybatis-plus插件的通用Mapper实现了单表的CRUD的无SQL化,已经可以有效减少Mybatis的代码量。但实际开发场景下,多数业务需求实现要涉及关联查询,你可以通过自己写SQL的方式去做,或者再深入思考一下有没有更方便的实现方案呢?涉及关联的开发场景1. 关联查询另外一张表的字段1.1. id-name转换:如depart...
2019-07-09 10:46:19
510
原创 gradle多模块打jar,上传本地仓库,并给本地其他项目使用
1、前言本篇主要讲述:gradle多模块打jar包,上传本地仓库,并交由本地其他项目使用2、环境准备操作系统: mac os gradle版本:4.1.0 开发软件:idea注:gradle版本不同,引入依赖方式可能不同,如果你发现本地导包是OK的,但是打包就报错,可以看看是不是gradle版本所引起的问题3、多模块gradle文档【gradle多环境讲解,官方文档】,官...
2019-07-09 10:46:07
1772
原创 利用weixin-java-miniapp生成小程序码并直接返回图片文件流
有时候我们可能需要在其他的网页上展示我们自己的小程序中某些页面的小程序码,这种时候,我们需要用到小程序的生成小程序码的相关接口。工具选型我们仍然选用简单方便的weixin-java-miniapp来完成此功能。项目配置详见我们的另一篇文章点此进入生成小程序码的相关类型小程序码的其他生成方式以及相关类型在这篇文章点此进入中介绍的较为详细,此处不再赘述,以下仅以生成不限制张数的这种...
2019-07-09 10:45:56
1862
原创 使用weixin-java-miniapp配置进行单个小程序的配置
在进行小程序后端接口开发方面,使用weixin-java-tools中的weixin-java-miniapp模块,往往可以事半功倍。引入weixin-java-tools在https://mvnrepository.com/中搜索weixin-java-miniapp,进入微信小程序 Java SDK这个项目中。 选择相应正式版本来进行使用。 maven中在依赖中添加如下配置项:...
2019-07-09 10:45:45
3782
2
原创 Gradle构建SpringBoot程序依赖管理之依赖版本自动控制
前言:Spring体系中很多库之间相互依赖,但是由于版本之间差异比较大,我们需要比较精确的知道每个库的版本对应关系,不然很容易造成“库”与“库”之间对应不上,导致部分功能无效,甚至是异常情况。程序员排查起来一个头两个大,本篇文章将介绍如何利用gradle的插件来实现版本自动管理机制1、依赖管理SpringBoot构建系统文档1、每个SpringBoot版本都提供了他能支持的依赖清单, ...
2019-07-09 10:45:26
2343
原创 利用反射和注解,拷贝类型相同,属性名不同的对象
1、前言最近开发遇到一个问题,两个对象进行属性值拷贝。理论上来说可以直接借助org.springframework.beans.BeanUtils.copyProperties(Object source, Object target)来进行拷贝,奈何两个对象属性名不同,懵逼脸。2、问题引入待拷贝类/** * @author : weenie * @version v1.0...
2019-07-08 17:12:37
923
原创 网页html生成图片的常用方案
如果您有一个需求是将网页生成一个快照的图片,然后需要用到该图片上传或者发送给他人的这样的需求,那么你会怎么做呢?聪明的你可能会想到canvas是否可以生成一个这样的图片呢?没错,今天就给大家推荐一个简单又好用的工具html2canvas。准备文件进入该官方网站点击此处,在官网首页开始下载资源文件,html2canvas.js或者html2canvas.min.js皆可。 将该资源文件引入...
2019-07-08 17:12:19
2310
原创 由a标签点击事件引发的IE8翻车事故
起因对于a标签的点击事件,也许我们早已习惯href="javascript:void(0);"这样去写,之后绑定click事件来处理,但今天在IE8浏览器下某个页面遇到了很诡异的问题。如果我们点击了某个这个a标签,JavaScript中的点击事件执行之后,页面中的input使用$('input').val()等就取不到值了,使用$('form').serialize()之后相关input的字段...
2019-07-08 17:11:40
297
原创 Mybatis单表CRUD与多表关联的无SQL实现方案_1: 无SQL实现单表CRUD
在diboot 2.0版本框架的封装过程中,我们遇到的问题和最终的解决方案也许可以给此时的你提供些帮助和思路,于是就有了这些系列文章。此系列主题为“Mybatis单表CRUD与多表关联的无SQL实现方案”,目的是给出一套简单灵活易用的通用方案,可以做到1.利用通用Mapper框架实现单表CRUD无SQL,2.封装基于注解的多表关联自动绑定的无SQL实现方案。一、Mybatis的CRUD通用解决...
2019-07-08 17:11:29
370
原创 IDEA下Gradle多模块(项目)的构建
我们在新起一个项目的时候,一般都会建多个子项目(IDEA里面称之为Module模块)。通过Gradle构建,多个Module之间需要将公用的配置抽取到全局,子项目中只写差异化的配置,以便于维护。多模块项目的Gradle目录结构示例:我的示例项目demo,我需要有一个common模块用于公用代码,一个rest模块用于提供rest接口,rest依赖common,如果用gradle构建,目录树会...
2019-07-08 17:11:14
3826
原创 Lombok常用注解的使用总结
Lombok是什么?一个在编译阶段修改增强Java类的工具,使用方式基于注解,常用于:为Java POJO生成属性对应的getter,setter等 为Java POJO生成builder构造器模式的实现 为Java类自动添加其他重复性代码,比如日志记录的声明代码可以通过@Slf4j注解添加项目中是否引入Lombok一直是个存在争议,它的主要优势在于消除Java类的部分臃肿代码,提高...
2019-07-08 17:10:58
598
原创 Hikari连接池配置之最大连接数(MySQL篇)
Hikari连接池配置之最大连接数 MySQL数据库最大连接数修改 MySQL数据库清理Sleep连接Hikari连接池配置参考建议根据实际访问量设置setMaximumPoolSize,不宜过大,否则会造成数据库连接数太多,无法访问。生产环境和测试环境可区别设置,比如:测试环境设置10,生产环境设置20 // Hikari连接池配置 HikariConfig con...
2019-07-08 17:10:38
7994
原创 Git克隆其他分支下的项目到特定文件夹
该问题涉及两方面:git克隆其他分支下的项目; git克隆项目到特定文件夹下。一、对于克隆其他分支下的项目,我们可以在命令后加上-b xxx 参数,来表示要克隆的分支,比如:git clone -b feature/maven https://github.com/dibo-software/diboot.git二、对于克隆项目到特定文件夹下,我们可以在git clone命令最后...
2019-07-08 17:10:24
2166
原创 Mysql 8.0版本驱动getTables返回所有库的表的问题
MySQL Connector/J 8.0版本驱动向下兼容之前的5.5+版本MySQL,如果你使用的是5.5+版本MySQL,都可以升级成8.0版本驱动。 如果你是使用的5.X版本驱动,需要将Driver Class换成: com.mysql.cj.jdbc.Driver需要注意的是:8.0版本驱动DataSource相关的参数有变化:比如8.0版本驱动将参数 nullCatalogMea...
2019-07-08 17:10:13
767
原创 Linux系统下Nginx支持ipv6
一、查看现有nginx是否支持ipv6需要执行以下命令,查看现有nginx是否支持ipv6,如果参数中具有--with-ipv6,则支持,如果没有,则不支持,需要重新编译nginx。# 此处的nginx路径以您实际的nginx启动文件路径为准/usr/local/nginx-1.14.0/sbin/nginx -V二、 重新编译nginx支持ipv6下载相对应的nginx安...
2019-07-08 17:09:53
615
原创 Ant-build.xml详解
<br />Ant的概念 <br />可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道 <br /><br />make这个命令。当编译Linux内核及一些软件的源程序时,经常要用这个命令。Make命令其实就 <br /><br />是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有 <br /><br />一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,用样也 <br /><
2011-02-28 15:55:00
307
Spring 3.x 权威开发指南:实施Java EE6的利器
2011-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人