自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 spring boot集成canal实现数据库同步,且mysql主库宕机canal自动切换到从库

canal简介:详情可查看:https://github.com/alibaba/canalcanal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。基于日志增量订阅和消费的业务包括数据库镜像数据库

2021-09-15 21:20:18 2435 2

原创 spring boot集成pageoffice实现对PDF文件的在线签字、盖章

写在前面:本文主要为了实现能对pdf文件进行在线签名、盖章功能。采用的技术是pageoffice。说简单吧他坑点挺多的,说难吧 他代码量确实不多。本文总结了一下我自己遇到的问题以及解决方式。注:实现pdf签名、签章的前提是pageoffice版本必须为 5.0以上本文案例源码:源码地址项目结构真的没几个文件1、添加依赖 <!-- 添加Sqlite依赖(可选:如果不需要使用印章功能的话,不需要添加此依赖 )--> <dependency&g.

2021-09-10 17:51:04 2577 5

原创 Java发送邮件

以QQ邮箱为例,其他邮箱作为发送人时与此差距不大。首先需要获取到QQ邮箱的授权码,操作如下:进入qq邮箱,设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启POP3/SMTP服务—>生成授权码引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mai

2021-09-08 16:46:27 251

原创 springboot+layui基础项目

介绍springboot+layui Demo在线地址:http://123.57.129.17:9001源码地址:https://gitee.com/zhoukaishun/kaishun_zhou测试账号密码:admin 123456适用人群新手入门,职场新人已有功能目前包含基本的登录、注册、忘记密码、菜单动态拉取、用户管理、角色管理、菜单管理、角色权限设置。 注册方式选择手机验证码注册(发送验证码部分需优化为发送后一分钟内不允许重复发送) 验证码发送选择的为阿里云短

2020-12-16 15:02:40 12754 47

原创 Java jar包加密

Java项目中jar包在window以及Linux环境下的加密公司项目需要交付时对项目源码进行加密,本文针对Java spring boot项目的jar包运行方式进行加密。加密工具:xjar,地址:https://gitee.com/core-lib/xjar前提条件:jdk1.7+Go语言环境(编辑环境需要,运行环境可不需要)创建一个新项目用于加密jar包新建一个项目 pom引入以下依赖 <!-- 设置 jitpack.io 仓库 --> <repos

2020-08-31 16:24:55 8209 14

原创 我的个人博客空间

我的个人博客空间地址周开顺的博客空间

2020-07-23 23:01:40 547

原创 spring cloud-mybatis基础项目搭建/测试

关于spring cloud的核心组件介绍可看这篇博客核心组件创建父级项目springcloud(maven项目或者springboot项目都行)创建eureka服务子模块创建common模块创建测试服务子模块 server-test创建feign子模块调用服务测试1、创建父级项目springcloud(maven项目或者springboot项目都行)最终的整体结构如下2、创建eureka服务子模块Eureka是微服务架构中的注册中心,专门负责服务的注册与发现。之后在启动类上添

2020-07-16 17:48:03 712

原创 基于上篇博客springboot+dubbo+zookeeper搭建微服务基础框架中提到的问题进行改进

如果没有阅读上篇博客的请先移步至上篇博客,springboot+dubbo+zookeeper搭建微服务框架基础对于上篇博客中提到的问题修改方案(主要对provider模块进行修改):provider模块添加dao包,删除或注释掉com.demo.provider.mapper包下的mapper接口,provider模块resource目录添加mapper文件夹修改启动类ProviderApplication.java修改配置文件application.yml修改imp实现类注入对象一、p

2020-07-14 17:20:34 219

原创 springboot+dubbo+zookeeper搭建微服务框架基础

步骤安装、启动、zookeeper搭建父级项目parent创建common模块创建provider模块创建customer模块customer访问provider服务一、下载安装zookeeper(此处使用的为window环境,Linux环境同理)zookeeper安装启动可参考此博客zookeeper window安装二:搭建parent项目idea创建springboot项目命名为parent即可,后续为parent创建子模块,最终项目接口如下图修改pom文件<?xm

2020-07-14 16:08:55 657

原创 Java实现数据库备份

需求:每晚凌晨对项目数据库进行定时备份。方案:采用定时任务使用Runtime.getRuntime().exec(cmd)操作mysqldump命令实现window环境下:@Configuration@EnableScheduling@Slf4jpublic class JobService { @Scheduled(cron = "0 50 23 * * ?") private void dbBackup() throws Exception { String

2020-07-14 14:08:52 1717

原创 springboot+layui从零到一实现简单的后端管理系统

详情可见本人码云地址下kaishun_zhou项目:https://gitee.com/zhoukaishun

2020-04-15 16:25:09 1066

原创 window10下安装rabbitMQ

window下安装rabbitMq因为RabbitMQ服务端代码是使用并发式语言Erlang编写的,所以安装Rabbit MQ的前提是安装Erlang。由于官网下载特别慢(我当时erlang+rabbitmq一共下载了两天) 所以我这里把我从官网下载后的安装包分享出来,可自行选择下载erlang官网下载:https://www.erlang.org/downloadsrabbitM...

2020-03-16 10:21:21 457

原创 layui中使用button导致ajax回调函数失效,button写在form表单中导致的问题

问题描述:这是一个我两年前无意遇到过,今天又碰到的一个问题,必须记录一下。最近自己写了一些小项目,所以前端的东西也是归我一个人做了,框架用的layui,在一个做发送验证码的功能的时候,发现点击发送验证码可以发送成功,但是成功后就是不走我的回调函数,不管我函数里面是console打印还是alert弹出,但偶尔回弹出我回调函数中的alert,但是也只是一闪而过,前端debugger断点也不进。...

2020-03-13 22:53:22 807

原创 spring-boot集成httpClient实现基本的远程调用(待优化)

本文参考博客地址为:https://blog.csdn.net/justry_deng/article/details/81042379建议先看上面那位老哥的博客再看此文。(上面那篇写的非常详细,我也是根据他的博客完成的,然后又加以优化)闲话少说直接上代码:引入相关依赖:(本文会用到这三条)<!--httpclient引入--> <depen...

2020-01-16 10:01:11 1716 1

原创 easypoi 3.1.0版本下报数组下标越界

前几天用easypoi写了一个一对多导出的功能,代码看起来明明没有问题,但是就是一直会报如下图一样的错误咱也不知道哪越界了,咱也不敢问,于是就找啊找,最终发现了问题出现点,这是因为3.1.0版本的一个bug,在easypoi 的 cn.afterturn.easypoi.excel.export.base这个包下的BaseExportService.setColumnHi...

2019-10-24 10:27:14 4088

原创 多线程demo理解

翻书:哦,马冬梅合书:马什么梅?翻书:哦,马冬梅?合书:马东什么?翻书:哦,马冬梅啊合书:什么东梅?多线程,很多人听到就头疼的东西(我听到也头疼)但是还是决定准备写下来加深一下理解吧。一、啥是多线程首先,先来一点文邹邹的东西,一个程序是一个进程 ,一个进程至少有一个线程,而线程是操作系统可识别的最小执行和调度单位。而多线程是多个线程并发执行。eg:如果楼下食堂是...

2019-08-14 13:58:08 694

原创 spring boot+redis+spring session+Nginx实现负载均衡下session共享

关于Nginx的介绍不懂的可以看下我之前的博客Linux下使用Nginx实现负载均衡其中讲解的什么是Nginx以及如何使用。问题描述:在目前的微服务+分布式下我们大多会面临一个问题:例如客户端发出一个请求到Nginx,Nginx根据自己的负载均衡策略分发到了tomcatA上面,然后tomcatA上往session保存了一份数据。过了一会客户端又发出一个请求,Nginx分给了tomcatB,此时...

2019-08-01 14:04:28 501

原创 观察者模式

本篇博客将书写一个简单的观察者模式案例。参考博客:https://blog.csdn.net/qq_33591903/article/details/97005268什么是观察者模式?在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。这就是观察者模式。被观察者发布信息,观察者收到信息,也可以说是订阅模式,发布者发布信息,订阅者获取信息。...

2019-07-24 11:04:09 314

原创 Linux下使用Nginx实现负载均衡

首先需要知道什么是Nginx,它能为我们做什么?详情可阅读这篇博客,个人认为写的很清楚明了。什么是Nginx这篇博客将记录在Linux下部署多个tomcat(其实就是两个)实现负载均衡。1、Nginx安装配置详情可查看此博客,安装过程无坑。Nginx安装、配置2、Linux下部署至少两个tomcat第一个正常安装配置,第二个可直接复制第一个的压缩包,解压,然后更改其conf...

2019-07-23 20:09:07 412

原创 spring-boot+mybatis整合redis缓存

springboot+mybatis整合redis实现缓存(写的略微粗糙,各位大佬凑活看吧)开发环境/工具:ideajdk1.8mysqlredisRedisDesktopManager(用于查看,可用可不用)开始:idea创建好springboot项目并生成所需要的实体类以及mapper/mapping。(此处不做详细讲解我会把配置文件贴在下面,如不知如何操作可参...

2019-05-31 17:44:09 4133

转载 Linux下使用Docker安装mysql5.7

关于Linux下安装mysql我之前尝试过很多次,在上篇文章用也成功安装了mysql5.6并开启远程连接,虽然可以成功但是步骤缺有些繁琐,并且听过安装5.7或者5.8会有其他的坑。所以今天写一篇基于Docker安装mysql的简易教程;什么是Docker?Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上...

2018-12-20 10:50:31 2001

转载 Linux下安装mysql5.6

软件:(如果没有可以私信我发送或自己下载)下载mysql-5.6.26.tar.gz,地址:https://pan.baidu.com/s/1bgbypA6m8zoIPecUiAXYQg;提取码:9bz5;首先确保Linux下没安装其他版本mysql。若有先卸载;1,卸载虚拟机自带的mysql相关包(若没有可忽略)rpm -qa | grep mysql      查找相关包r...

2018-12-18 17:21:08 248

原创 搭建spring-boot+vue前后端分离框架并实现登录功能

源码链接:https://pan.baidu.com/s/1E0e72K6P3_xtkFscL6iEtQ 提取码:t2te一、环境、工具jdk1.8mavenspring-bootideaVSVodevue二、搭建后台spring-boot框架步骤:1、new-project选择SpringInitializr next2、创建项目文件结构以...

2018-08-12 12:17:01 114028 65

转载 JVM基本原理

本文参照百度百科以及该地址内容的简化https://www.cnblogs.com/lishun1005/p/6019678.html一、什么是java?java是一门技术,他包括四个方面:java编程语言、java类文件格式、java虚拟机(JVM)和java应用程序接口(java API)二、什么是JVM?jvm是java虚拟机的缩写,JVM是一种用于计算设备的一种规范,它是一...

2018-07-30 14:58:53 202

原创 进程与线程

一,什么是进程,什么是线程进程:进程是计算机中程序关于某数据集合上的一次活动,是系统资源分配和调度的基本单位,是操作系统结构的基础。进程既是基本的分配单元,也是基本的执行单元。(可理解为:进程是正在运行的程序的实例)进程是一个实体,每个进程都有自己的地址空间,一般包括文笔区域、数据区域、和堆栈。线程:线程是程序执行流的最小单位,线程是进程中的一个实体。一个程序至少有一个进程,一个进...

2018-07-27 19:47:10 145

原创 面试中关于servlet的问题

1、servlet生命周期初始化:web容器加载servlet,调用init()方法;处理请求:允许service()方法,service()自动运行与请求对应的doXXX方法(doGet或doPost) 销毁:服务结束后,web容器调用servlet的distory()方法销毁servlet2、jsp与servlet 有什么区别。jsp在本质上就是servlet,但是两者的创建方式不同,serv...

2018-07-12 10:41:44 5824

原创 常用Linux命令

1、查找文件find / -name filename.txt  根据名称查找/目录下的filename.txt文件。find . -name "*.xml"  递归查找所有的xml文件find . -name "*.xml" |xargs grep "Hello World"  递归查找所有文件内容中包含hello world的xml文件grep -H 'spring' *.xml  查找所以有...

2018-07-02 11:11:52 199

原创 面试中遇到的sql

1、现有数据库如下,要求查询出每一科成绩都大于80的学生姓名;表:方法一:因为需要查出各科都大于80的学生姓名,那么一旦有一门课成绩小于80那么便不符合条件,我们只需要查出成绩小于80的学生,然后not in 即可;sql:select distinct(username) from student where username not in (select username from stude...

2018-06-25 11:53:31 301

原创 Linux下安装tomcat

注意:安装前提是必须已经安装了JDK;第一步下载tomcat点击下载第二步:将下载的tomcat文件上传到/usr/local文件夹下第三步:切换到/usr/local目录下进行解压cd /usr/localtar -zxv -f apache-tomcat-7.0.88.tar.gz第四步:解压后的文件重命名为tomcat并进入到tomcat/bin目录下...

2018-06-13 17:16:33 190

原创 Linux下使用压缩包安装JDK

下载JDK安装包点击下载安装JDK1、在/usr/local下创建java文件夹sudo mkdir /usr/local/java2、把下载好的安装包放到/usr/local/java下3、进入java目录:命令行:cd /usr/local/java4、解压压缩包、输入下面命令(根据自己下载的名称来自行修改)sudo tar xvf jdk-8...

2018-06-12 18:16:05 4087 1

原创 Linux下使用yum安装jdk

之前在Linux下安装jdk都是使用压缩包安装,还会使用到xftp,可能比较繁琐,现在发现了用yum安装方法,相比较而已非常方便、快捷;1、查看yum中管理的java版本输入以下命令,查看可用的jdk软件包列表:yum search java | grep -i --color JDK展示如下图:以java-1.8.0-openjdk-devel.x86_64为例,输入以下命令:yum insta...

2018-06-07 11:28:47 6445 1

原创 java冒泡排序的实现以及优化

冒泡排序原理:1、比较相邻的两个元素,如果前者大于后者则交换位置;2、这样对数组第0个数据到N-1个数据进行遍历比较一次后,最大的数据会移动到最后一位。3、N=N-1,如果N=0则排序完成;代码实现package zks;public class BubbleSort { public static void Bubble(int a[],int n){ int i,j; for(i...

2018-06-07 09:11:51 2345 1

空空如也

空空如也

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

TA关注的人

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