自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

The man was lazy and left no message

黾勉从事,协心戮力,蹈厉奋发

  • 博客(95)
  • 资源 (11)
  • 收藏
  • 关注

原创 手摸手系列之SpringBoot+Vue2项目整合高德地图实现车辆实时定位功能

最近在做一个物流内陆运输的项目,其中的一个关键功能是根据车辆的GPS数据在页面上实时显示车辆位置信息。由于我们已经获得了第三方提供的GPS数据,所以接下来的任务是将这些数据整合到我们的系统中,并利用高德地图API来展示车辆的实时位置。接下来,来看看怎么样来一步步实现吧。Vue整合高德地图总的来说还是非常简单的,下一篇我们继续来介绍如何实现展示车辆的某段时间的运行轨迹。

2023-12-31 01:01:11 1688 2

原创 Docker Compose部署微服务项目实战讲解

当需要在多个容器之间协调和管理应用程序时,Docker Compose是一个非常有用的工具。它允许通过一个配置文件来定义、配置和启动多个 Docker 容器,使得整个应用程序的部署变得更加简单和一致。

2023-11-23 17:37:06 290

原创 手摸手系列之批量修改MySQL数据库所有表中某些字段的类型

在迁移老项目的数据库时,使用Navicat Premium的数据传输功能同步了表结构和数据。但是,发现某些字段的数据类型出现了错误,例如,租户ID从Oracle的NUMBER类型变成了MySQL的,正确的应该是bigInt(20)。此外,逻辑删除标记DEL_FLAG也出错,应该是int(1),但现在是decimal类型。由于涉及到数百个表,手动更改显然不现实。下面来看看如何实现批量修改这些字段的数据类型。

2023-10-09 15:00:10 560 1

原创 手摸手系列之前端Vue实现PDF预览及打印的终极解决方案

近期我正在开发一个前后端分离项目,使用了Spring Boot 和 Vue2,借助了国内优秀的框架 jeecg,前端UI库则选择了 ant-design-vue。在项目中,需要实现文件上传功能,同时还要能够在线预览和下载图片和PDF文件,甚至需要在页面上直接打印PDF文件。尽管框架自带了组件,但它相对较为简陋,只支持单页打印,无法实现多页打印。经过仔细的权衡和比较后,最终决定采用vue-pdf和print-js组件来满足需求。

2023-09-13 18:10:11 4137

原创 Nginx文件下载预览加权限验证的思考和实现

Nginx文件服务鉴权使用模块实现,功能简单实用。当然还有其他的技术方案可以来实现,如第三方的扩展模块x-sendfile等。可根据自己项目的实际情况灵活处理。

2023-07-19 22:42:35 1098

原创 手摸手系列之用Python制作Windows小工具及将Python封装为exe可执行程序

Python通过这种方式打包成exe可执行程序还是很简单的。但是有个问题,这里用的打包方式产生的 exe 文件都比较大,这是因为 Pyinstaller 打包的时候会把你环境中的库和模块全部打包进去,这就会使一些你根本用不着的库和模块也被打包进去了!而且这些库被打包之后不仅会使 exe 文件变大,还会使其运行变卡变慢、变得十分臃肿。因此,一般情况下不建议这样的打包方式。可以用第二种方式进行打包 ——虚拟环境下的打包。下期我们再讲!

2023-06-07 09:59:43 1502 1

原创 Vue3基础知识点及与Vue2的区别

注意:严格遵循单向数据流,子组件不要修改父组件传过来的属性值!可以通过emit发给父组件一个通知让父组件自己去修改这个属性值!

2023-04-20 08:24:27 101 1

原创 Java的Stream流使用指南

noneMatch判断数据列表中全部元素都不符合设置的predicate条件,如果是就返回true,否则返回false,流为空时总是返回true。注意:findFirst() 和 findAny() 都是获取列表中的第一条数据,但是findAny()操作,返回的元素是不确定的,对于同一个列表多次调用findAny()有可能会返回不同的值。如果流中的元素的类实现了 Comparable 接口,即有自己的排序规则,那么可以直接调用 sorted() 方法对元素进行排序,如 Stream。

2023-01-20 01:46:39 1597

原创 一条Mysql直接统计出总金额

需求:查询出符合条件的台账下的费用,然后根据币制统计出费用的总金额。通过两次sum函数,可以方便的统计出人民币和美元的总金额。

2022-11-02 17:02:27 1920

原创 接口管理工具Apifox在前后端分离项目中的实践

最近在做的集团SaaS平台的派车模块,因实际使用中司机无法操作电脑端,所以又开发了派车小程序以方便司机角色去接单、派车和送货签收操作。小程序端直接调用的是后台的派车模块的接口,这就涉及到了前后端分离中的一个痛点-接口的文档维护和接口的联调测试问题。幸好,在这个全民脱贫、码农翻身把歌唱的时代,我们有了比postman更好用的接口管理工具-Apifox官方👉[点我直达]给出的介绍:Apifox 是接口管理、开发、测试全流程集成工具,定位 Postman + Swagger + Mock + JMeter。...

2022-08-11 18:00:02 2841

原创 手摸手系列之EasyPoi导出Excel横向遍历实战

手摸手系列之EasyPoi导出Excel横向遍历实战。标题是合并单元格,长度是集合subList的长度+2,#fe表示横向遍历集合subList

2022-08-11 15:35:54 16650 3

原创 手摸手系列之SpringBoot+Vue整合snakeflow工作流实战

最近做集团内部的悦通关平台项目,台账管理的付款申请模块需要用到工作流审批功能,本着轻量的目的,特选定了国内开发者开源的一款轻量级工作流引擎-snakeflow。官网了解到Snaker是一个基于Java的轻量级工作流引擎,适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计,定位于简单集成、多环境支持,基于Apache License Version 2.0开源协议发布。文档指南👉[点我直达]7张核心表定义::流程定义,例如请假申请,用车申请等流程定义。:流程实例,当前运行中的流程实例的信息,比如,.

2022-08-01 16:37:27 4842 5

原创 手摸手系列之前端手撸CSS完成打印界面预览功能

最近在做集团前后端分离项目-悦通关平台的付款申请审批工作流功能,遇到一个需求,需要在办理历史的详情页打印业务信息,界面如图2:预览界面不是很复杂,只是一个二维表格加个印章,印章内容随流程审批自动变换为已申请、审批中、已完成等。以前的导出下载、打印预览等是通过后端来处理的,zbus直接生成流返前端,或直接生成文件返前端下载地址通过nginx来下载,此方式针对的文件都比较大。上面这个需求比较简单文件也比较小,完全可以不用浪费后端资源,可以直接通过前端Vue的print插件来处理,印章可以通过CSS直接画出来就

2022-08-01 12:00:24 513

原创 手摸手系列之SpringBoot整合RabbitMQ详细教程

参考:Springboot 整合RabbitMq ,用心看完这一篇就够了版本:SpringBoot 2.6.4手摸手系列之SpringBoot整合RabbitMQ详细教程版本:SpringBoot 2.6.4参考:Springboot 整合RabbitMq ,用心看完这一篇就够了一、简介在安装完RabbitMQ后,输入http://ip:15672/,可以看到一个简单后台管理界面。在这个界面里面我们可以手动创建虚拟host,创建用户,分配权限,创建交换机,创建队列等等,还有查看队列消.

2022-03-08 11:48:49 2495

原创 SpringBoot整合RabbitMq之高级扩展--用户管理以及Virtual Hosts配置

在RabbitMQ的web管理页面,可以新增用户,并设置用户的权限及虚拟节点。1. 新增用户及设置角色用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。(1) 超级管理员(administrator)可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。(2) 监控者(monitoring)可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点

2022-03-07 16:25:38 782

原创 通往架构师之路系列之Java设计模式(二)工厂方法模式

前言参考:虫洞栈工厂模式又称工厂方法模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。这种设计模式也是 Java 开发中最常见的一种模式,它的主要意图是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。简单说就是为了提供代码结构的扩展性,屏蔽每一个功能类中的具体实现逻辑。让外部可以更加简单的只是知道调用即可,同时,这也是去掉众多 ifelse 的方式。当然这可能也有一些缺点,比如需要实现的类非常多,如

2022-02-11 12:38:17 407

原创 通往架构师之路系列之Java设计模式(一)设计模式简介

参考资料:菜鸟教程:BUNOOB.COM重学Java设计模式:bugstack 虫洞栈设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设

2021-11-01 14:59:17 177

原创 手摸手系列之smart-doc兼容zbus最新配置流程

准备食材zbus版本:1.0.4-SNAPSHOTsmart-doc-maven-plugin插件版本:2.2.6制作步骤在需要生成doc文档的接口层pom中,加入smart-doc的插件配置,如图:加入如下配置:<build> <plugins> <plugin> <groupId>com.github.shalousun</groupId> <artifactId>smart-doc-mave

2021-09-16 11:22:03 315

原创 Linux设置公钥实现SSH私钥免密码登录详解

前言测试服务器版本:CentOS 7.2生成公钥和私钥工具:puttygen一、生成公钥和私钥从官网下载puttygen工具,用于生成需要的公钥和私钥,下载地址:点我直达(a RSA and DSA key generation utility)依自己的需求选择设置,我这里参数部分选择SSH-2 DSA,在“Number of bits in generate Key”中输入2048,点击Generate:二、设置服务器在服务器/etc/ssh目录下新建文件夹.ssh,将

2021-08-26 16:35:08 245

原创 工欲善其事,必先利其器 - IntelliJ IDEA设置类注释和方法注释模板

一、类注释模版Files -> Settings -> Editor -> File and code Templates:具体内容:/** * ${DESC} * * @author ZHANGCHAO * @date ${DATE} ${TIME} * @since 1.0.0 */二、方法注释模版Files -> Settings -> Editor -> Live Templates:先建个组 MyTemplates,再建个Live T

2021-08-16 16:24:05 106

原创 手摸手深入理解JVM虚拟机--在MacOS系统上编译OpenJDK12并使用CLion调试靠谱教程

前言MacOS Big Sur 11.4Clion 2021.1OpenJDK12bootstrap JDK11最近在看周大大的《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》这本著作,准备编译个自己的JDK,刚开始是在自己的主力机win10上编译的。无奈针对Windows的坑点太多,故换成备用的MacBook Pro来编译。...

2021-07-02 10:06:08 432 1

原创 手摸手系列之---camel ftp监听本地报文目录,并在报文生成后上传到远程第三方ftp服务器实战

前言版本:SpringBoot 2.4camel 3.5.0上篇文章已经说过项目需求和主要流程,现在已经接收解析xml报文并入库生成Java对象。下一步就是处理完生成的数据生成XML报文,再返回给第三方ftp服务器了。下面看看怎么做。1. 增加camel配置,本地监听目录和远程第三方ftp服务器URL。# camel配置camel: # camel ftp服务路由地址 route: id: XMLRoute ftp: server: sftp://119

2021-06-21 14:13:24 698

原创 手摸手系列之---camel ftp监听接收解析xml报文并入库生成Java对象实战

前言版本:SpringBoot 2.4camel 3.5.0最近在做跟一个第三方系统的对接,主要流程就是对方生成XML格式的报文,需要我方将其报文发送到海关申报,然后将申报完的数据再组装成XML报文格式发回到对方的FTP服务器。功能其实挺简单,用Apache的camel-ftp很容易就能实现,下面看看具体如何做吧。一、引入camel依赖:<!-- camel-spring-boot-starter --><dependency> <groupId>or

2021-06-11 15:14:08 1650 1

原创 POI获取Sheet中的字符串关键字的方法

/** * 获取Sheet中的字符串关键字 * * @param inputstream * @param cellContent * @return java.lang.Integer * @author ZHANGCHAO * @date 2021/2/20 14:14 **/ public static Integer findcellContentInSheet(InputStream inputstream,.

2021-02-20 14:17:28 375

原创 SpringBoot+Vue项目的PDF导出及给PDF文件盖章的功能示例

前言版本:SpringBoot:2.3.1.RELEASEitextpdf:5.4.3最近在做SpringBoot+Vue的项目,需要将委托单商品的数据导出为PDF文档。Java的PDF操作第三方工具类用的最多的应该是itextpdf了吧,当然以前也用过icepdf这种小众的。那现在就来看看用itextpdf怎么做,还是很简单的。首先前端页面如下,可以导出箱单和发票两种格式的PDF文件:一、引入itextpdf依赖<!--PDF导出--><dependency>

2021-02-08 13:54:12 6007 6

原创 Mysql一个SQL查询搞定按天分组统计,无数据自动补0展示

在做前后端分离的项目,仪表板模块,展示的echarts图表,如图:展示的是当天的前十天的委托单数量,按日期分组统计。感觉很简单嘛,直接一个SQL查询不就搞定了嘛。后台SQL查询:postman测试:仔细一看,好像哪里不对哦,19号 20号怎么没有呢,就算那天没有数据的话,也需要返回给前端来展示呀,数量直接设置0就行了吧!刚开始想的解决方案是直接在Java代码里遍历一下补充数据,但是直接SQL查询是否可以实现呢,那样就省不少代码呢。。废话不多说,直接上手撸SQL!!解题思路:首先用一个查

2020-12-23 17:13:58 5164 5

原创 手摸手学前端:.sync 修饰符/$emit(update: prop, ‘newPropVulue‘)之子组件向父组件传值以更新属性

参考:https://blog.csdn.net/weixin_41796631/article/details/83051966https://www.jb51.net/article/138140.htm一、以前看到的vm.$emit用法是这样的:1、父组件可以使用 props 把数据传给子组件。2、子组件可以使用 $emit 触发父组件的自定义事件。vm.$emit( event, arg ) //触发当前实例上的事件vm.$on( event, fn );//监听event事件后运

2020-12-21 14:20:52 368

原创 手摸手,一起重温SpringBoot 2知识点(七)spring-boot-starter-parent 和 spring-boot-dependencies 的区别

最近在看一个github上前后端分离的SpringBoot+Vue项目,看到其后端项目的顶层pom里没有标签,如下:在依赖管理中用的spring-boot-dependencies。而我自己的项目中一直习惯是这样配置,这也是新建SpringBoot项目时官方默认的方式:经查阅官方文档得知,可能有人不喜欢继承spring-boot-starter-parent POM。也可能有自己的企业标准parent。如果你不想使用spring-boot-starter-parent,你依然可以通过使用spring

2020-12-04 12:35:54 1040

原创 Spring Security整合JWT遇到java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter问题解决方案

前言有空将Spring Security的项目增加了JWT验证功能,搞完以后启动突然报错:java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter,信息如下:找不到类!! 查了资料恍然大悟:原来我将项目JDK升级成了目前最新的jdk15,而JAXB API是java EE 的API, java 9 .0开始引入了模块的概念,默认情况下,Java 9.0以上版本中将不再包含java EE 的Jar包!!!那我们只好手动引入了:

2020-11-06 11:33:09 715

原创 Linux(CentOS7.6 x64)安装JDK 8完全教程手册详细篇

前言系统版本:CentOS 7.6 64位 理论上Linux安装JDK都是通用的。一、下载JDKOracle官网慢的要死,还不一定能下到8版本的JDK,我已经下好放到网盘了,需要的自取:文件名:jdk-8u221-linux-x64.tar.gz链接:https://pan.baidu.com/s/12mq9jD1gq_X8AKfOe7H43A 提取码:2c5o 二、将下载好的压缩包上传到/usr/local下,并解压。如图,解压命令如下:tar zxvf jdk-8u221-li

2020-11-04 14:15:23 286

原创 Linux(CentOS7.6 x64)安装nginx-1.19.4完全教程手册详细篇

前言Linux版本:CentOS7.6 x64nginx版本:官网最新版 1.19.4一、首先去官网下载最新版本的nginx目前(2020-11-02)最新版本是:nginx-1.9.9.tar.gz二、在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel:安装命令:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel二、将下载的压缩包上传到服务

2020-11-02 16:49:46 2454 1

原创 Linux(CentOS7.6 x64)安装Redis-6.0.9完全教程手册详细篇

前言Linux版本:CentOS7.6 x64Redis版本:官网下的最新版6.0.9一、去Redis官网下载Linux安装包二、安装依赖gcc# 查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5gcc -v# 升级gcc到5.3及以上,如下:升级到gcc 9.3:yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-b

2020-11-02 15:09:09 4032 2

原创 Linux(CentOS7.6 x64)安装MySQL-8.0.22完全教程手册详细篇

前言Linux版本:CentOS 7.6 x64位MySQL版本: 8.0.22-el7-x86_64去年十一月份不到一百块买的阿里云的ECS服务器到期了,续费太贵了。直接又在腾讯云上买了个88一年的,反正是自己的项目,将就着用吧。1. 去MySQL官网下载安装包2. 查看系统是否已经安装mariadbrpm -qa | grep mariadb有的话卸载mariadb:rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

2020-11-02 13:37:17 4726 10

原创 js对象中取属性值对象.属性和对象[属性]的区别

对象的属性和方法统称为对象的成员。首先,我们知道:在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。在JavaScript中,只能用“ . ”来访问对象的方法。js对象中取属性值(.)和[ ]的区别“ . ”一般作为静态对象使用时来存取属性。而“[ ]”表示法在动态存取属性时就非常有用。如:var object = {name:'xiaoming',age:29};var name1 = object.name;var name2 = object['name

2020-10-23 15:51:21 3024

原创 通过Java的Stream流将List转为树形结构

前言日常开发中可能会遇到一些需求,比如构建菜单,构建树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,转为树形结构。下面我们一起来看看怎么做。1. 首先数据库菜单资源表数据如下:2. SysMenuMapper.xml中SQL如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org/

2020-10-22 15:05:42 3569

原创 手摸手学前端:Vue router路由之import 与 require 使用区别以及懒加载

node编程中最重要的思想就是模块化,import和require都是被模块化所使用。import 与 require 区别:遵循规范require 是 AMD规范引入方式import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法调用时间require是运行时调用,所以require理论上可以运用在代码的任何地方import是编译时调用,所以必须放在文件开头本质require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require

2020-10-21 11:26:10 2745

原创 手摸手学前端:JSON.parse和JSON.stringify方法详解

两个方法的差别:JSON.stringify是从一个对象中解析出字符串JSON.parse是从一个字符串中解析出json(键值对)一、 JSON.parse()【从一个字符串中解析出json对象】例子:定义一个字符串,var data=’{“name”:“goatling”}’解析对象,JSON.parse(data)结果是:name:“goatling”二、JSON.stringify()【从一个对象中解析出字符串】例子:var data={name:‘goa

2020-10-13 09:40:37 376

原创 mybatis一次性查询出部门树等结构数据的简单示例(递归方式)

前言本例以部门树为演示,其他树形结构大同小异。一、前端页面的数据展示结构如下:查看数据库:说明:每个部门在数据库里都是一条记录,都有父节点parentId,这里根节点股东会的值是-1。二、编写后端代码1. controller层/** * 部门管理 * * @author chao.zhang * @version 1.0.0 * @date 2020/8/24 10:13 */@RestController@RequestMapping("/system/basic/

2020-08-24 13:19:41 2115

原创 SpringBoot开启事务支持时报代理错误The bean ‘xxx‘ could not be injected as a ‘xxx‘ because it is a JDK dynamic

一、问题描述SpringBoot+Vue的项目,启动类加注解@EnableTransactionManagement,启用事务支持时出现以下错误:***************************APPLICATION FAILED TO START***************************Description:The bean 'hrServiceImpl' could not be injected as a 'com.junya.service.impl.HrSer

2020-08-23 09:22:22 1675

原创 微服务中分布式事务Seata报错get global lock fail,获取不到全局锁的问题解惑

这几天一直在做zbus和vue的项目前后端分离项目,现有两个服务:基础服务和预告服务,现在预告服务中的订单新增要调用基础服务中的日志模块来保存操作日志。但是调用完了就报错get global lock fail,获取不到全局锁,找遍官方和内部交流群,也不得要领。调用方代码: /** * 提交订单(状态变更为已生效,不可编辑删除) * * @param id * @return com.yorma.entity.YmMsg<com.yorma.cargo

2020-08-20 15:57:31 11292 13

PotPlayer.1.7.17508.zip

公认的Windows最好用的本地视频播放器,potplay最新版。也可以播放流媒体。几乎可以打开任何格式的视频文件。

2020-02-25

mybatis-generator-core-1.3.2.zip

mybatis的代码生成器最新版!!!可以自动生成mapper、service、model等文件,节约时间。

2020-02-25

FileLocatorpro_v8.5 2875.zip

FileLocator Pro 8.5.2875文件搜索神器专业破解版,可搜索文件的内容。比everything还要棒哟。安装完成后将Crack内的.exe文件覆盖到安装根目录即可完成破解。

2019-07-22

GitNote – 基于 Git 的跨平台云笔记工具

GitNote 是一款基于 Git 的云笔记工具,支持 Windows、macOS、Linux,使用 Git 仓库作为数据保存,如 GitHub、GitLab 等,内置 git 支持,依托 Git 仓库的特性,拥有历史版本、私密笔记、无限空间等特点。

2019-05-06

OCR文字识别软件自用神器

OCR能够将图片转换成WORD、文字等形式的OCR文字识别软件。特别小巧,但是功能强大。双击启动后直接按F4即可。自动识别。不能用直接打死我!!

2019-03-08

nginx-1.15.8 Windows最新版

Nginx 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。

2019-03-08

QuickHand 粘贴板助手神器

QuickHand 粘贴板助手最新版,自用神器,可以抛弃Ctrl cv大法了

2019-01-09

jdk6绿色免安装版

jdk6绿色免安装版,解压后配置下环境变量即可完美使用。

2019-01-09

jdk8绿色免安装版解压即可

jdk8绿色免安装版,解压后配置下JAVA_HOME路径即可用,

2019-01-09

jd-gui反编译工具

jd-gui反编译工具,最好用的java的.class文件查看器。

2019-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除