- 博客(432)
- 资源 (25)
- 收藏
- 关注
原创 MacOS安装多版本 JDK 及快速切换
一、JDK下载地址,Mac分为两种芯片0、如何判断自己的MacBook芯片?Mac computers with Apple silicon - Apple SupportMac computers with Apple silicon:Mac Studio (2022) MacBook Pro (14-inch, 2021) MacBook Pro (16-inch, 2021) iMac (24-inch, M1, 2021) Mac mini (M1, 2020) MacBo
2022-04-10 16:50:04
3807
原创 轻量级分布式事务-自定义多数据源事务注解
一、背景对于一个方法内,同时操作多个、或者多种类型的数据源时,比如一个MySQL、一个MongoDB,或者两个不同的MySQL,事务管理器只能唯一的场景使用声明式的注解@Transactional 无法保证多个数据源回滚,只能保证单一数据源@Primary回滚,使用编程式的方式去回滚事务,代码侵入太多,使用复杂度高。所以需要自定义注解,实现对多个数据源的管理二、实现过程1、自定义注解@MultiDataSourceTransactional/** * @author 菜粥 * @Desc
2022-03-19 21:29:42
2184
原创 使用Nginx转发TCP请求
在平时的开发中,可能有的服务在本地电脑是连接不上的,此时需要一个中间人来作为代理,帮助我们去转发请求比如现在本地可以链接某一台nginx服务器,域名为www.baidu.com,并且开放了端口8899,那么我们通过这台服务器,来转发我们链接不上的192.168.0.111:6379 redis服务一、nginx.confdaemon off;user www;worker_processes 8;worker_rlimit_nofile 102400;events { use ep.
2021-10-11 22:50:28
7734
原创 MyBatisPlus 批量插入速度慢问题解决方案
1、saveBatch批量插入等批量操作耗时特别长,对于上万条数据更是十几秒答:先说解决方案:jdbc URL后追加参数 rewriteBatchedStatements=true,让多个insert/update/delete语句同一批次提交,而不是分开多次提交,除此之外,还需要自定义insert sql,不使用MP的saveXXX2、原理mysql jdbc driver发布文档,从3.1.13开始加入了该功能:https://dev.mysql.com/doc/relnotes/conn
2021-10-07 20:32:06
3743
原创 MacOS 安装HomeBrew
1、背景最近要用到telnet、redis-cli等,需要安装HomeBrew才能很快的安装这些2、安装过程HomeBrew官网:https://brew.sh/或者直接在bash里面执行下面的语句,会提示输入当前用户密码:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"3、如果电脑之前没有安装Command_Line_Tools_for_X
2021-10-07 20:28:16
457
原创 Java Bean Copy工具对比评测
一、背景在平时的Java开发过程中,经常会Copy 对象,如果用Setter去一个一个属性的复制,会产生很多业务无关的冗余代码(但是执行效率最高),所以在这里选择Bean Copy工具,提高开发效率:二、测试过程Copy 1000w条数据,输出的执行时间 单位是毫秒原生cglib beanCopier.copy(from, to, null);private static BeanCopier beanCopier = BeanCopier.create(User.class, User.c
2021-10-07 20:24:25
627
原创 IDEA修改类模板、方法模板教程
为了更好的定位追踪问题,统一代码注释规范,特设定类的初始化模板和方法注释模板,配置教程如下:一、类级别模板/** * @author 你的名字 * @Description ${Description} * @date ${DATE} ${TIME} **/二、方法级别模板*** @description: $description$* @param: $params$* @return: $returns$* @author: * @time: $time$*/1、点右
2021-10-07 20:19:57
1345
原创 Consul-手动注销不健康的服务
在consul内存在一些非健康状态的服务,这时候需要移除掉这些服务打开shell,执行curl --request PUT http://consul_ip:8500/v1/agent/service/deregister/{服务id}其中的consul_ip替换为真实的ip
2021-10-07 20:16:28
861
原创 Git统计某人commit次数、代码量
1、统计某人提交次数git log --author=zhouguanghao --since=“2020-12-02” --no-merges | grep -e ‘commit [a-zA-Z0-9]*’ | wc -l2、统计某人代码提交量git log --author=zhouguanghao --pretty=tformat: --numstat | awk ‘{ add += $1; subs += $2; loc += $1 - $2 } END { printf “added lin
2021-10-07 20:08:56
3793
原创 Mac使用数据线连接安卓手机传输文件
材料准备Mac Book Pro数据线(USB/雷电都可以)安卓手机 适用安卓系所有品牌的手机下载Android File Transferhttps://www.android.com/filetransfer/下载完成后安装,然后双击打开,就可以在访达里面传输文件了...
2021-10-07 13:52:46
4895
原创 Docker DeskTop安装Jenkins教程[Windows]
1、Docker DeskTop下载安装Docker DeskTop相当于集成了Docker引擎和Docker可视化工具就像Git和Git GUI一样下载地址:https://www.docker.com/products/docker-desktop下载完成以后,直接点下一步安装就行2、拉取Jenkins镜像docker pull jenkins/jenkins:latest3、运行Jenkins容器这里可以用命令,也可以用Docker DeskTop可视化4、解锁Je
2021-04-23 16:43:57
2161
原创 Vue入门实战-列表的增删改查(Axios调用API)
效果图实现代码(需要引入vue-2.4.0.js axios.min.js)<!DOCTYPE html><html><head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title></title> <meta name="description" content="
2021-02-23 20:07:25
1935
1
原创 Vue入门实战-音乐播放器
效果图html<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
2021-02-06 23:11:29
507
原创 Vue入门实战-天气预报
效果图实现代码<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
2021-02-06 18:05:05
1007
原创 Vue入门实战-TODO记事本
效果图实现代码<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>记事本</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <meta name="robo
2021-02-06 16:43:52
829
原创 Vue入门实战-轮播图切换
效果图实现代码<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
2021-02-06 15:08:16
823
原创 Vue入门实战-实现简单的计数器
效果图实现代码<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
2021-02-06 14:58:44
806
原创 axios实现GET/POST
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script src="https://cdn.jsdelivr.net.
2021-02-04 20:48:05
241
原创 VueJS初探
文章目录Vue基本代码和MVVM之间对应关系v-cloak、v-text、v-html的基本使用v-bind指令-缩写是:使用v-on指令定义Vue中的事件-缩写是@跑马灯效果制作事件修饰符的介绍v-model实现表单元素的数据双向绑定使用v-model实现计算器vue中通过属性绑定为元素设置class类样式vue中通过属性绑定为元素绑定style行内样式v-for指令的四种使用方式v-for中key的使用注意事项v-if和v-show的使用和特点Vue基本代码和MVVM之间对应关系v-cloak、v
2021-02-03 20:17:25
275
原创 MySQL必知必会-第十一章-使用数据处理函数
文章目录文本处理函数日期和时间处理函数数值处理函数文本处理函数命令功能Left()返回串左边的字符Right()返回串右边的字符Length()返回串的长度Locate()找出串的一个子串Lower()将串转换为小写Upper()将串转换为大写SubString()返回子串的字符Soundex()返回串的SOUNDEX值SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的
2021-01-01 20:11:58
232
原创 MySQL必知必会-第十章-创建计算字段
文章目录Concat()连接字符串trim()去除空格别名alias(导出列)计算字段Concat()连接字符串select Concat(str1,str2...strn)trim()去除空格Ltrim(str) 去掉str左边空格Rtrim(str) 去掉str右边空格Trim(str) 去掉str两边空格别名alias(导出列)select column as alias from table_name;计算字段select column1+-*/column2 as re
2021-01-01 19:18:17
233
原创 CentOS7安装RabbitMQ
一、下载Erlang、socat、rabbitmq的rpm包1.erlanghttps://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.1.5-1.el7.x86_64.rpm2.socathttp://mirror.centos.org/centos/7/os/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.rpm3.rabbitmqhttps://packagecloud.io/rabb
2020-12-17 19:30:32
456
原创 RabbitMQ-Exchange交换机详解
交换机整体模式交换机属性Name:交换机名称Type:交换机类型 direct\topic\fanout\headersDurability:是否需要持久化,true为持久化Auto Delete:当最后一个绑定到Exchange上的队列删除后,自动删除该ExchangeInternal:当前Exchange是否用于RabbitMQ内部使用,默认为falseArguments:扩展参数,用于扩展AMQP协议自定制化使用交换机类型1.Direct Exchange注意:Direct
2020-12-10 16:10:44
391
原创 RabbitMQ-命令行与管控台基础操作
基础操作# 启动应用rabbitmqctl start_app# 关闭应用rabbitmqctl stop_app# 节点状态rabbitmqctl status用户类操作# 添加用户rabbitmqctl add_user username password# 列出所有用户rabbitmqctl list_users# 删除用户rabbitmqctl delete_user username# 清除用户权限rabbitmqctl clear_permissions -p
2020-12-10 11:52:54
457
原创 Linux基础知识和命令
查找命令和实用快捷键CTRL+R 搜索最近的命令history,展示最近输入的命令,输入 !序号 可以直接执行列表里的历史命令Ctrl+A == Home 光标跳转到行首Ctrl+E == End 光标跳转到行尾Ctrl+U 删除光标左侧的所有字符Ctrl+K 删除光标右侧的所有字符Ctrl+W 删除光标左侧的一个单词浏览和切换目录白色:表示普通文件蓝色:表示目录绿色:表示可执行文件红色:表示压缩文件浅蓝色:链接文件红色闪烁:表示链接的文件有问题黄色:
2020-12-10 09:59:47
147
原创 玩转Git-Git基础-复习篇
一、新建Git仓库的两种情况:一、已有代码加入Git管理cd 项目文件夹git init二、新建全新项目使用Git管理git init new_project二、工作区和暂存区git status 查看当前仓库状态git log 查看操作日志...
2020-12-09 21:16:56
229
原创 Gradle下载与安装配置
一、Gradle下载1.下载地址https://services.gradle.org/distributions/比如我下载的是gradle-6.7.1-bin.zip可以Ctrl+F直接搜版本号2.解压把压缩包解压到一个文件夹,比如我解压到了D盘的:D:\Gradle二、Gradle安装配置按下Windows+R,会打开运行窗口,然后输入sysdm.cpl会打开环境变量设置页面1.配置GRADLE_HOME2.配置Path在Path添加 %GRADLE_HOME
2020-12-03 18:35:51
4623
原创 MySQL必知必会-第九章-用正则表达式进行搜索
基本字符匹配SELECT prod_name FROM products WHERE prod_name REGEXP '1000' ORDER BY prod_name;默认不区分大小写,可以添加BINARY关键字区分,如:SELECT prod_name FROM products WHERE prod_name REGEXP BINARY ‘1000’ ORDER BY prod_name;进行OR匹配| 为正则表达式中的OR操作符,两个以上的OR条件可以使用多个|SELECT
2020-09-15 15:32:24
226
原创 CentOS/Linux安装Zookeeper
文章目录1.JDK下载及安装2. Zookeeper下载3. 解压4.新建data文件夹5.修改配置文件6. 启动Zookeeper1.JDK下载及安装JDK安装教程2. Zookeeper下载Zookeeper下载地址# 可以直接使用wget下载到Linuxwget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1.tar.gz3. 解压tar -zxvf apache-zo
2020-07-26 10:25:42
393
原创 ArrayList源码解析
文章目录实现的接口RandomAccessCloneablejava.io.Serializable成员变量构造函数clone方法get方法set方法add方法:此处会产生扩容扩容机制 grow(minCapacity);remove方法clear方法addAll方法迭代器其他方法实现的接口本文基于Oracle JDK1.8展开讨论ArrayList位于java.util包下ArrayL...
2020-04-24 22:48:46
327
原创 Github
1.C:\Windows\System32\drivers\etc打开这个文件夹,会看到hosts文件2.用记事本打开这个hosts文件,在最后添加如下两行并保存192.30.253.112 github.com151.101.185.194 github.global.ssl.fastly.net3.刷新DNS缓存,打开cmd,输入ipconfig/flushdns4.重启浏览...
2020-04-21 09:50:39
786
原创 JVM内存结构
Oracle官方文档JVM体系结构JVM内存结构程序计数器保存当前执行指令的地址,一旦指令执行,程序计数器将更新到下一条指令虚拟机栈每个线程运行时所需要的内存空间,称为虚拟机栈每个栈由多个栈帧组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法...
2020-04-19 21:06:14
188
原创 数据结构之链表[Java]
/** * @ClassName: LinkedList * @Author: Leo * @Description: 链表 * @Date: 4/9/2020 12:43 PM */public class LinkedList<E> { /** * 维护的内部Node节点 */ private class Node { ...
2020-04-09 16:48:46
183
原创 SSH连接VMware内CentOS网络设置
1. 控制面板->网络和共享中心->更改适配器设置2. 打开VMware->Edit->Virtual Network Editor3. 修改配置查看你虚拟机的网卡ifconfigvim /etc/sysconfig/network-scripts/ifcfg-eth04. SSH连接虚拟机ssh root@虚拟机ip...
2020-04-04 23:32:40
329
原创 数据结构之循环队列[Java]
/** * @ClassName: LoopQueue * @Author: Leo * @Description: 循环队列 * @Date: 4/4/2020 4:35 PM */public class LoopQueue<E> implements Queue<E> { //存放元素的数组 private E[] data; /...
2020-04-04 19:33:41
255
原创 数据结构之队列[Java]
/** * @ClassName: Queue * @Author: Leo * @Description: 队列接口 * @Date: 3/28/2020 9:55 PM */public interface Queue<E> { /** * 获取队列大小 * * @return */ int getSize();...
2020-03-28 23:03:23
182
原创 数据结构之栈[Java]
/** * @ClassName: ArrayStack * @Author: Leo * @Description: 数组实现栈 * @Date: 3/28/2020 9:38 PM */public class ArrayStack<E> implements Stack<E> { private Array<E> array; ...
2020-03-28 21:50:38
249
原创 数据结构之数组[Java]
/** * @ClassName: Array * @Author: Leo * @Description: 数组类 * @Date: 3/25/2020 9:08 PM */public class Array<E> { //存放数据的数组 private E[] data; //数组内元素数量 private int size; ...
2020-03-28 21:29:45
245
原创 MySQL-CentOS安装MySQL8
1. 下载MySQL8wget http://mirrors.sohu.com/mysql/MySQL-8.0/mysql-8.0.19-1.el8.x86_64.rpm-bundle.tar这里可以选择搜狐的源或者中科大的源,根据自己的速度选择http://mirrors.sohu.com/mysql/MySQL-8.0/http://mirrors.ustc.edu.cn/mysq...
2020-03-12 23:46:30
727
Android四大布局及三个控件
2019-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人