自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 基于Java GUI编写的数据库设计文档生成工具

db2document 是基于 Java GUI 开发的一款简单好用的数据库设计文档生成工具,支持通过界面输入数据源连接信息,然后自动输出对应的数据库设计文档。为了更方便使用,最后把jar打包成了 exe 文件,目前输出文档格式支持word文档,文档输出这块儿参考 screw 开源项目的模板引擎编写

2022-02-05 01:16:36 1265 1

原创 策略模式介绍及其具体使用场景

文章目录前言一、策略模式介绍二、具体使用场景1、举例2、传统方式优化3、Map + 函数式编程 优化总结前言今天用策略模式优化了下之前的业务代码,重新温习了下设计模式的相关理念,在此记录一下一、策略模式介绍定义 :策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 (摘自<大话设计模式>)个人理解:策略模式简单理解,应该是对于同一个业务功能,在不同的场景需求下提供不同的实现逻辑,来达到动态切换业务算法,满足不同场景

2021-11-12 18:38:00 10110 12

原创 Java 后端工程规范

后端工程规范规范的意义和作用编码规范可以最大限度的提高团队开发的合作效率 编码规范可以尽可能的减少一个软件的维护成本 , 并且几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 编码规范可以改善软件的可读性,可以让开发人员尽快而彻底地理解新的代码 规范性编码还可以让开发人员养成好的编码习惯,甚至锻炼出更加严谨的思维开发环境规范开发环境JDK 统一使用 1.8版本开发工具IntelliJ IDEA 2019.3.5 +(安装Lombok Plugin),不使用IDEA2

2021-07-16 17:32:10 711 3

原创 MybatisPlus注解实现多表联合并且同时分页、条件查询

文章目录前言一、场景需求1、 相关表如下2、相关实体类如下二、MybatisPlus实现前言使用mybatis plus 时,单表的增删改查操作十分便捷,不用写xml,也不用写sql,只要实现相关封装的接口就可以完成大部分的需求。但是对于多表的关联查询来说,mybatisPlus并没有实现这样的需求,大部分人都是通过写xml去实现,其实使用Mybatis Plus加注解也可以实现联合查询的功能,还可以自动分页,条件过滤查询。一、场景需求有一张User表,里面有用户的信息。一张书籍表,里面有书籍相

2021-05-03 14:06:59 6719 14

原创 Docker教程(通俗易懂)

Docker学习目标:掌握Docker基础知识,能够理解Docker镜像与容器的概念完成Docker安装与启动掌握Docker镜像与容器相关命令掌握Tomcat Nginx 等软件的常用应用的安装掌握docker迁移与备份相关命令能够运用Dockerfile编写创建容器的脚本能够搭建与使用docker私有仓库1 Docker简介1.1 什么是虚拟化​ 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如

2021-03-13 13:45:11 185

原创 【十大排序算法系列】快速排序

写在前面上一篇更新了这个系列的排序算法(【十大排序算法系列】冒泡排序)。分析了冒泡的逻辑和优化点,下面来写下快速排序(为什么跳这么快?因为比较走心hhhh)照例给出系列内所有算法的对比。。常见的十大排序算法有:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序等。常见的十大排序算法,时间复杂度和空间复杂度如下图:快速排序快速排序(QuickSort),为什么要叫快速排序呢,因为它真的很快,是对冒泡排序的一些改进,在1960年(管它多少年)被

2021-01-04 16:05:59 1306 4

原创 别怕变老吉他谱(完美还原艾热个人直播版本)

别怕变老吉他谱,B站艾热个人吉他solo版本

2022-09-11 12:30:24 785 2

原创 Mybatis 获取最终可执行SQL语句

Mybatis 获取参数解析后,最终的可执行SQL

2022-07-26 16:41:53 7907

转载 Mybatis插件原理(代理+责任链模式)

Mybatis插件原理以及实现,从设计模式出发,一步一步理解其原理

2022-07-21 09:20:05 671

原创 安利一个学习数据结构的宝藏网站

安利一个学习数据结构的宝藏网站!!!

2022-04-27 17:03:19 1098

转载 消息中间件选型对比

主流消息中间件选型对比

2022-02-20 16:43:42 279

转载 权限控制模型—RBAC

RBAC(Role-Based AccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。与ACL实现的区别在于,不能直接为用户分配权限,只能从角色那里继承而来。1.RBAC权限模型  在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)    角色是什么?可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统...

2022-02-10 09:41:39 3347

原创 Java实现MD5和国密SM3摘要算法

JDK提供的MD5摘要算法以及国密SM3算法实现

2022-02-08 17:37:48 4695

原创 使用Groovy脚本逆向生成MybatisPlus代码

日常的开发都用到 Mybatis Plus,但是每次开新功能都得设计表、映射实体代码,写相关service、mapper。这些过程都是繁琐而重复的,于是想通过逆向生成的方式,自动通过数据表,可以逆向生成相关的单表CRUD代码,IDEA上找了几个插件,都不太适合我,生成的东西还是得改。于是自己写了个Groovy脚本来生成...

2022-01-12 17:28:58 1196

原创 解决security引入actuator后所有接口401问题

项目场景:最近项目要引入服务健康检查机制,所以在每个服务引入了 spring-boot-starter-actuator。问题描述:发布到测试环境以后,其他服务都正常使用,但是有一个服务异常,除了 /actuator/health 获取服务健康信息接口外,其他接口都是 401错误,于是排查原因。问题如下:actuator相关接口正常使用其他所有业务接口 401错误原因分析:排查发现,异常的服务里,除了actuator外,原先存在一个 security 依赖,排除了 actuat

2022-01-06 13:53:57 3328

原创 maven-mvnd使用步骤,新版Maven,构建速度大幅提升

文章目录前言一、maven-mvnd是什么?二、使用步骤1. 从GitHub下载压缩包2. 解压,配置环境变量3. 如何使用4. 配置使用原先已存在的 maven 的仓库!三、打包速度对比前言众所周知,Maven和Gradle几乎包含了所有Java项目的构建。而目前绝大部分的Java项目都是使用Maven的方式,Maven对比Gradle的劣势很明显,就是太慢了!但是现在,Maven也可以变得更快了!一、maven-mvnd是什么?maven-mvnd是Apache Maven团队借鉴了Gra

2022-01-02 19:06:20 9070 9

原创 Centos7安装nacos详细

文章目录前言一、首先安装Java环境二、安装Nacos题外话前言前段时间买了阿里云服务器,部署了自己的博客站点,机器仍有剩余,于是安装了nacos服务,方便平时学习和搭工程使用。于是有了此文,记录一下一、首先安装Java环境选择用 yum 安装JDK,命令如下,谨记一定要安装devel版本,不然无法正常使用yum install -y java-1.8.0-openjdk-devel.x86_64二、安装NacosNacos官方下载地址:https://github.com/aliba

2021-12-27 23:16:23 5698

原创 Java代码实现行转列

文章目录前言一、如何转换?二、转换步骤前言最近在写业务的时候,遇到一个需求,要求把数据库的数据行,根据某个维度,把行转换为列去显示。如下图说明: 系统里某个数据有一系列属性,属性值会根据某个时间维度去进行更新。然后就有了版本的概念,为了方便更新之前和之后进行对比,前端页面要求显示如图所示的方式。一、如何转换?如果数据是可以通过连表查询出来左侧样子,可以通过SQL的方式去做行与列的转换。我这边版本信息都是序列化成json字符串存储到db了,所以采取了Java程序转换的方法。二、转换步骤

2021-12-23 20:19:57 4993

原创 IDEA解决maven报错omitted for duplicate

问题描述:IDEA 的maven菜单爆红,提示报错信息 (omitted for duplicate),但是不影响使用解决方案:进入本地的maven仓库目录 ,搜索 .lastUpdate ,全部删除,然后重启IDEA即可

2021-12-06 14:18:46 7154

原创 Java + Nginx 获取客户端真实ip

文章目录前言一、Nginx 相关配置前言之前搭建了个博客站点(点击跳转【https://www.zpengblog.top/】),后台架构为 Nginx + Java 服务,设置博客留言的时候,发现后台获取的IP的地址都是Nginx的。于是调整nginx配置,获取实际的ip地址一、Nginx 相关配置server { listen 88; server_name localhost; location /{

2021-11-21 15:01:35 3940

原创 nginx配置websocket(直接复制可用)

文章目录前言一、nginx相关配置前言后端开启了websocket,但是使用nginx转发的时候出了问题,访问不了。重新调整一下nginx的配置即可。一、nginx相关配置 upstream admin { server 192.168.10.121:3333; # ip + 端口 } map $http_upgrade $connection_upgrade { default upgrade; '' close; } #用不同子域名配置多一个443 se

2021-11-15 23:33:22 7819

原创 centos7防火墙相关命令

centos7防火墙相关命令1、firewalld相关操作命令开启防火墙开启systemctl start firewalld查看状态firewalld-cmd --state 或者 systemctl status firewalld2、端口配置相关命令新增端口映射 (以下都是指在public的zone下的操作,不同的Zone只要改变Zone后面的值就可以)firewall-cmd --zone=public --add-port=80/tcp --permanent

2021-11-15 18:14:54 1525

原创 IDEA启动报错:An attempt was made to call a method that does not exist. The attempt was made from ...

项目场景:Springboot项目问题描述:项目无法启动,至上一次启动成功未更改代码,排除代码错误原因,具体报错如下:可能是项目未关闭完全,又重启了项目等多种原因触发这个问题***************************APPLICATION FAILED TO START***************************Description:An attempt was made to call a method that does not exist. Th

2021-11-12 14:24:20 2951

原创 【孤岛检查】找出给定的关系中,与中心节点有直接或间接关系的节点

文章目录前言一、需求二、代码实现三、总结前言在日常的业务性开发中,用到算法,记录一下一、需求 有一张表,存储两个节点之间的关系数据,比如有三个字段,id、source、target一条记录代表两个节点之间存在的直接关系。在这样一个场景下,要求给出一个节点,能找出所有关系中与该节点有直接或间接关系的节点。例如,所有的节点关系可构造成下图一样的图结构,给出节点Node 0 , 可找出所有与Node 0有直接或间接关系的节点(所有蓝色节点)。找不到 Node 11、Node 12(绿色节点)。

2021-11-12 09:56:41 499

原创 docker配置阿里云镜像加速器解决拉取镜像慢问题

一、登录阿里云点击 阿里云地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 跳转到阿里云登录,即可看到加速镜像地址如下图二、配置daemon.json文件在centos系统中,编辑文件 /etc/docker/daemon.json文件,加入以下内容即可{ "registry-mirrors": ["https://ijki67vr.mirror.aliyuncs.com"]}三 、重启docker服务

2021-11-03 00:39:16 977

原创 Centos7.3 yum安装mysql

文章目录一、 下载并安装MySQL官方的 Yum Repository二、MySQL数据库设置1.启动mysql2.查看状态3.查询默认root密码4.使用默认密码登录root5.修改密码三、卸载Yum Repository四、允许远程登录(navcat等工具)一、 下载并安装MySQL官方的 Yum Repositorywget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpmyum -y ins

2021-11-01 23:18:58 86

原创 SpringCloud Alibaba版本与各组件版本对应关系说明

文章目录前言一、组件版本说明二、毕业版本说明三、pom示例前言介绍springcloud alibaba 各版本对应关系一、组件版本说明二、毕业版本说明三、pom示例 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> &l

2021-10-21 00:15:42 859

原创 idea设置eclipse样式

文章目录前言一、设置二、效果预览三、样式插件下载地址前言设置 IDEA的编辑器样式为eclipse,护眼,方便从eclipse转过来的朋友们过渡一下一、设置1、打开IDAE,找到 File> setting,然后找到如下配置,导入样式文件即可样式文件在第三步进行下载二、效果预览字体使用2020版提供的 JetBrains Mono ,墨绿色,护眼,个人看着也挺舒服三、样式插件下载地址以下是导入样式文件的下载地址 :...

2021-10-09 15:38:16 1147

原创 StarUML 最新版使用

文章目录前言一、破解方法二、步骤1.找到安装目录下的app.asar文件并替换前言由于最近写文档需要画UML图,找了以前接触过的一款产品StartUML,还是挺好用的,但是是收费的,否则输出最终图片的时候,会有水印。于是上网找了教程破解。一、破解方法最终目的是替换StartUML安装目录下的一个 app.asar 文件,替换成功重启即是已激活状态。那么这个文件在哪里获取呢,这里先放出来,后续有空补具体方法二、步骤1.找到安装目录下的app.asar文件并替换默认在 C:\Program F

2021-09-13 18:11:54 1031

原创 Mysql唯一索引不区分大小写问题

一、问题描述:表里某字段设置了唯一索引,在插入的时候报唯一索引重复异常二、原因分析:经排查发现,插入的一批数据里面,存在英文字母相同,大小写不同的数据。如下,sm 和 SM 只是大小写不同,数据都属于正常数据。mysql的唯一索引不区分大小写,所以要调整该字段的排序规则。三、解决方案:ALTER TABLE 表名称 MODIFY 字段名称 VARCHAR(64) BINARY;如上,调整该索引字段的排序规则即可。...

2021-09-01 21:25:09 1590

原创 解决nacos不停刷日志 ClientWorker get changedGroupKeys:[] 问题

项目场景:微服务,nacos版本,1.3.0问题描述:如下,客户端不断刷心跳日志 com.alibaba.nacos.client.config.impl.ClientWorker get changedGroupKeys:[]解决方案:提高nacos的日志级别为 WARN在项目配置文件添加如下配置即可解决:logging: level: com.alibaba.nacos.client.config.impl: WARN...

2021-08-24 17:23:07 1928

原创 springboot用maven打包外部引入的lib依赖

文章目录前言一、添加外部jar包到lib目录二、配置maven打包1.pom.xml 配置前言大部分我们日常需要的依赖都可以在maven仓库上找到,但是有时候需要引入一些外部的jar包到工程,则会在工程下建一个lib目录,然后添加到工程依赖。提示:以下是本篇文章正文内容,下面案例可供参考一、添加外部jar包到lib目录在工程下建一个lib目录,然后把jar包上传到此目录下,如图本地使用的话,可以使用idea本身的功能添加到工程依赖里面,右键lib目录,选择Add as Library这时

2021-08-24 09:19:49 12881 5

原创 Mybatis integer类型值为0时判断条件无效问题

问题描述:一个数据实体有一个状态标识码,一般为 integer 类型,比如,一篇文章的状态:0-编辑中 1-已发布。然后有一个分页列表,可以进行条件查询,根据文章状态进行过滤。伪代码如下:<select id="pageArticle" resultType="xxxVO"> SELECT * FROM article <where> <if test="queryDTO.status !=null and

2021-07-29 09:30:42 851

原创 基于redis实现分布式锁(二)根据资源动态生成锁名称

前言上次写了一篇实现分布式redis锁的文章,见《AOP+自定义注解实现Redis分布式锁》,是在防止定时任务并行启动场景的时候用的。最近业务上又遇到了个新场景,要求:不允许对资源进行并行发布的操作。如此,上次封装的reids锁已经不能满足需求了,主要是,锁的key必须要使用资源id。例如场景:要对某个班级的所有学生手动推送通知,在这个推送通知的过程中,不允许其他人同时对这个班级的学生进行推送通知操作。所以根据班级 id 拼接成分布式锁 key 。按照之前的代码,锁是可以实现的,但是在 aop 的时候

2021-07-26 17:12:07 367

原创 安装jar包到本地maven仓库命令

一、需求把一个jar包,安装到本地maven仓库,在jar包目录下执行以下安装命令二、安装命令mvn install:install-file -Dfile=.\infinitus-cloud-common-1.0-SNAPSHOT.2.jar -DgroupId=com.org.infinitus -DartifactId=infinitus-cloud-common -Dversion=1.0-SNAPSHOT.2 -Dpackaging=jar三、说明-Dfile:jar包所在本地的具体

2021-07-21 14:25:24 349

原创 toString输出父类的属性

需求目前的toString只会打印当前类的属性,希望在打印类信息的时候,如果类有父类,则把父类的所有信息也打印出来。方案1、使用Lombok/** * @author linzp * @version 1.0.0 * CreateDate 2020/9/23 14:05 */@Data@ToString(callSuper = true)@TableName("user")public class User extends BaseEntity implements Serial

2021-07-15 01:28:32 5076

原创 springboot配置日志格式化输出到文件

文章目录前言一、application.yml指定配置文件路径二、logback-spring.xml 配置内容前言springboot可以配置日志输出控制台格式,输出到文件,利用logback配置可实现一、application.yml指定配置文件路径# 日志配置logging: config: classpath:logback-spring.xml二、logback-spring.xml 配置内容在项目 Resource文件目录下新建logback-spring.xml 配

2021-07-04 11:21:11 3127

原创 JDBC连接ES查询

文章目录前言一、maven依赖二、实现代码前言ES也支持使用JDBC协议去 查询索引和文档内容,本文给出样例一、maven依赖 <!-- 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> &

2021-07-04 11:01:51 2280

原创 Connection获取数据库、表、字段元数据

文章目录前言一、获取数据库元数据二、获取数据表元数据三、获取数据表字段元数据总结前言使用JDBC Connection 获取数据库信息,表信息和字段信息元数据。提示:这里我使用 JDBC连接 ES 作为样例,其他数据源一样一、获取数据库元数据数据库元数据使用 connection.getMetaData().getCatalogs();查看源码如下,可看到字段为 TABLE_CAT /** * Retrieves the catalog names available

2021-07-04 10:47:57 4548

转载 quartz框架基本配置 quartz.properties

quartz.properties 基本配置#设置默认调度程序的名称,如正在使用群集功能,则必须对群集中“逻辑上”相同的调度程序的每个实例使用相同的名称,重新赋值该值。org.quartz.scheduler.instanceName = DefaultQuartzScheduler#如果您希望Quartz Scheduler通过RMI作为服务器导出本身,则为true。org.quartz.scheduler.rmi.export = false#如果要连接(使用)远程服务的调度程序,则为tr.

2021-06-24 23:18:19 363

ATM柜员机模拟程序--Java源代码和说明文档

基于Java GUI开发的桌面程序: 需要输入管理员账号和密码,可以查看这台ATM机近期资金出入明细,可以查看这台ATM机上面操作的所有账户的历史记录和明细,可以把所有记录导出到excel文件中; 进入用户账号和密码的登录界面,当输入给定的卡号和密码(初始卡号16位和密码6位)时,对比系统存储的账号和密码正确,能登录ATM柜员机系统,当日出错次数操作3次,当日锁定账户不能继续操作,累计三日被锁定,需要管理员账号才能够完成解锁操作。 详情可进本人博客 https://blog.csdn.net/m4330187/article/details/110845235 查看。。 PS: 此资源为收费版本,不用积分下载,欢迎使用

2022-06-21

GenerateForMybatisPlus.groovy

日常的开发都用到 Mybatis Plus,但是每次开新功能都得设计表、映射实体代码,写相关service、mapper。这些过程都是繁琐而重复的,于是想通过逆向生成的方式,自动通过数据表,可以逆向生成相关的单表CRUD代码,IDEA上找了几个插件,都不太适合我,生成的东西还是得改。于是自己写了个Groovy脚本来生成 演示文章链接:https://blog.csdn.net/m4330187/article/details/122444249

2022-01-12

IDEA设置eclipse主题的样式文件

从eclipse过渡到IDEA的,对于新编辑器的主题样式来说,未免会有些不习惯,可以导入此样式文件,在IDEA上模仿eclipse的样式配置,具体效果预览见文章https://blog.csdn.net/m4330187/article/details/120672251

2021-10-09

StarUML4.0版文件app.asar

替换staruml安装目录下的app.asar文件,重启软件即可 使用博文 :https://blog.csdn.net/m4330187/article/details/120272159

2021-09-13

ATM柜员机模拟程序 源代码

基于Java GUI开发的桌面程序: 需要输入管理员账号和密码,可以查看这台ATM机近期资金出入明细,可以查看这台ATM机上面操作的所有账户的历史记录和明细,可以把所有记录导出到excel文件中; 进入用户账号和密码的登录界面,当输入给定的卡号和密码(初始卡号16位和密码6位)时,对比系统存储的账号和密码正确,能登录ATM柜员机系统,当日出错次数操作3次,当日锁定账户不能继续操作,累计三日被锁定,需要管理员账号才能够完成解锁操作。 详情可进本人博客 https://blog.csdn.net/m4330187/article/details/110845235 查看。。

2020-12-07

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

TA关注的人

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