自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Talk is cheap. Show me the code.

路漫漫其修远兮,吾将上下而求索。

  • 博客(107)
  • 资源 (9)
  • 收藏
  • 关注

原创 Centos7搭建rsync+inotify远程同步

Centos7搭建Rsync+inotify远程同步rsync的客户端服务器:系统为centos7 ,安装rsync+inotifyrsync服务端服务器:系统为centos7 ,只安装rsync即可注意:在服务器上实际操作时,配置文件里的注释最好全删掉rsync服务端服务器安装rsync关闭防火墙和selinux# 关闭防火墙systemctl stop firewalldsystemctl disable firewalld#关闭selinuxsed -ri 's/^(SELINU

2020-07-14 19:32:53 336

原创 deepin linux 扩展/home

/home空间不足,进行扩容(迁移)使用deepin 15.11 一年多了。 由于固态硬盘只有128GB,只给/home分配了不到60G的空间。 现在一直在提示“系统可用磁盘空间不足”。 电脑上还有1T的机械硬盘,还有不少可用空间,于是决定把/home迁移到这块机械硬盘。使用GParted调整出来100G空间,格式化为ext4,挂载并查看这个新分区的UUID终端执行命令vscode /...

2020-05-01 04:23:06 1647

原创 Mysql不存在就插入,存在则不操作

不存在就插入,存在则不操作(必须有唯一键)使用insert ignore语句,例如插入数据:insert ignore into tablename (last_name,first_name) values ('bar','foo');表字段(last_name,first_name)为联合唯一键,如果表中已经存在last_name='bar’且first_name='foo’的数据,就不...

2020-04-20 00:10:26 3759 1

原创 Mysql插入数据,存在则更新,否则插入

Mysql插入一条数据,存在就更新,不存在就插入(必须有唯一键)mysql表中,有个联合唯一索引CREATE TABLE `news_visite` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `news_id` bigint(11) DEFAULT NULL COMMENT '资讯ID', `user_id` bigi...

2020-04-19 23:35:40 2338

原创 开发测试期间docker构建springboot项目例子

开发测试期间,需要多次打包上传测试服务器,打出来的jar包100M左右,要是构建成docker镜像至少200M往上。为了加快上传部署测试包的速度,想到了直接运行jar不用docker(但是为了保证与线上环境一致,必须用docker)。然后决定 jar文件解包 分离lib依赖(lib文件不变动的话只需要传一次)。测试服务器上构建docker镜像。方式一pom文件,配置build解包插件 ...

2020-03-05 00:53:10 229

原创 MyBatis中的resultMap两个association

查询一个类,需要带出来其他两个类投递简历Vo@ApiModel(value="投递简历Vo")public class SendResumeVo implements Serializable { // 省略其他属性 @ApiModelProperty(value="招聘信息ID" ) private Long recruitId; @ApiModelProperty(valu...

2020-02-25 15:11:20 834

原创 java字符串表达式转换成可执行代码

在很多编程语言中都有eval函数,将"字符串"转换成执行的代码,并执行。java中想要做这样的事情,需要引入其他"动态语言"才能实现类似效果。比如可以 java调用内置的 jsEngine或groovyEngine。需求比较简单,只是把字符串的数学公式求值,也可以使用 apache的commons-jexl3。commons-jexl3 Demo依赖 <!-- 解析表达式 --...

2020-02-20 17:18:31 3025

原创 mybatis使用insert into from在mysql中批量插入数据

使用的数据库自增id,不需要返回id。批量插入,部分字段值是属性传进来的值,部分字段值是其他两个表联查出来的。java实体类/** * 购物车 实体类 * @time 2020-02-10 18:53:30 */public class Shopcart { //id private Long id; //用户Id private Long userId; //商品sp...

2020-02-10 22:08:28 1708

原创 docker快速搭建rocketmq环境

docker快速搭建rocketmq环境创建目录和文件# 目录:替换成一个合适的目录mkdir 目录/rocketmq-all-4.4.0 && $_mkdir -p data/namesrv/logs data/namesrv/store data/broker/logs data/broker/store conf在conf目录下创建文件broker.conf,并...

2019-11-20 14:57:11 348

原创 分布式锁数据库实现

基于数据库实现排他锁表结构TABLE `distribution_lock` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `lock_name` varchar(255) NOT NULL COMMENT '锁名称(唯一)', `lock_time` datetime NOT NULL ON UPDATE CURRENT...

2019-11-17 19:40:56 128

转载 分布式锁Redis实现

原文链接:http://www.cnblogs.com/yuxiang1/p/10530972.html分布式锁用redis实现是不靠谱的。。。redis锁 超时被自动释放了,可是实际业务没执行完成。出现这种情况就gg了。分布式锁需要满足:独占:任意时间,只能有一个客户端获取到同一个锁自解:哪个客户端加的锁哪个客户端才能解锁无死锁:超时自动释放锁(比如,加锁的客户端故障宕机)高可用...

2019-11-16 23:51:30 225

原创 linux系统下每次git pull输入用户名密码

方式一 git配置在用户家目录~生成.git-credentialsusername和password换成你自己的echo "https://{username}:{password}@github.com" > .git-credentials添加到git 全局配置git config --global credential.helper store查看git配置g...

2019-11-07 15:11:23 4048

原创 java synchronized与Lock

synchronizedLockJava的关键字,在jvm层面上java接口获取锁假设A线程获得锁,B线程等待。如果A线程阻塞,B线程会一直等待分情况而定,Lock有多个锁获取的方式,具体下面会说道,大致就是可以尝试获得锁,线程可以不用一直等待释放锁1、已获取锁的线程执行完同步代码,释放锁 2、线程执行发生异常,jvm会让线程释放锁在finally中必...

2019-10-31 14:57:17 108

原创 java 可重入锁、自旋锁、可中断锁、公平锁、 读写锁

可重入锁可重入锁,指的是同一线程 外层方法获得锁之后 调用了仍然需要获取同一个锁的方法,不用重新获取锁,可以直接执行。在JAVA中synchronized和ReentrantLock 都是 可重入锁。可重入锁最大的作用是避免死锁代码示例1:public class MyRunnable implements Runnable{ public synchronized void fun1...

2019-10-30 23:41:30 220

原创 Linux常用命令

Linux命令格式command [-option] [parametor] [parametor]目录和文件cd 切换目录/ 根目录. 当前目录.. 上级目录~ 当前用户的家目录- 上一次的所在的目录​语法:cd [.|..|~|/|目录名称]​示例:cd 空格 # 进入个人的主目录cd ~ # 进入个人的主目录cd .. # 返回上一级目录cd ../.. #...

2019-10-28 09:18:03 927

原创 分布式事务

本文内容主要参考文章分布式事务的实现主要有以下 5 种方案:XA 方案TCC 方案本地消息表可靠消息最终一致性方案最大努力通知方案XA方案/两阶段提交方案所谓的 XA 方案,即:两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库都回复 ok,那么就正式提交事务,在各个数据库上执行操作;如果任何其中一...

2019-10-27 16:20:45 145

原创 git场景化操作

git add 提交到暂存区,出错怎么办一般代码提交流程为: 工作区 -> git status 查看状态 -> git add . 将所有修改加入 暂存区 -> git commit -m “提交描述” 将代码提交到 本地仓库 -> git push 将本地仓库代码更新到 远程仓库场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git ch...

2019-10-18 12:24:40 192

原创 JVM类加载过程与双亲委派模型

类加载过程类加载过程为JVM将类描述数据从.class文件中加载到内存,并对数据进行解析和初始化,最终形成被JVM直接使用的Java类型。此过程包含:加载:获取该类的二进制字节流,将字节流代表的静态存储结构转化为方法区的运行时数据结构,并在内存生成代表该类的 java.lang.Object 对象作为方法区该类的访问入口验证:确保 Class 文件的字节流中包含的信息符号当前虚拟机的要求(...

2019-10-17 17:35:56 154

原创 springboot2.1.8、dubbo2.7.3、nacos1.13

nacos 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。干了这几个事儿: 服务 注册、发现、管理,配置管理; 可以代替 ZooKeeper,Eureka。为什么阿里的dubbo注册中心要放弃zookeeper, 而用Nacos?。nacos 安装、启动Github releases下载nacos压缩包,然后解压启动服务器以单机模式为例, 其他模式可参考: Nac...

2019-09-30 15:08:42 843

原创 ThreadLocal原理浅显易懂

发现网上看到的关于ThreadLocal原理的文章…或是大量的源码解析 或者是 源码都没看的信口胡诌…简直是无语…我自己看了看源码。发现 其实挺简单的;只需要set方法的源码,就能跟小白讲明白原理了;不需要扯一串的蛋public class ThreadLocal<T> { /** * ThreadLocal<Integer> threadLocal = Thr...

2019-09-29 12:09:03 504

转载 Redis持久化机制

众所周知,Redis是一个内存数据库。但它与其它内存数据库(如memcache)等有一个很大的区别,就是Redis可以持久化到磁盘。有了持久化方案,Redis就可以对数据进行备份、恢复、复制。Redis提供了两种持久化方案:RDB和AOF。在Redis 4.0中,提供了一个新特性:两者的混合持久化。下面将介绍Redis的各种持久化方案的原理和配置。使用info persistence命令可以查...

2019-09-28 21:01:07 123

原创 tomcat统计QPS

利用tomcat的access log# 设定log的目录,默认: logsserver.tomcat.accesslog.directory是否开启access log,默认: falseserver.tomcat.accesslog.enabled假设访问日志文件名字为access.log,请求方式GET,请求接口/hellocat access.log |grep 'GET ...

2019-09-28 20:42:27 1969

原创 CountDownLatch、CyclicBarrier、Semaphore

DownCountLatch 闭锁、多线程计数器DownCountLatch :闭锁、多线程计数器, 允许一个或多个线程,等待其他一组线程完成操作,再继续执行。实例化DownCountLatch时候传入计数值,当一个线程调用DownCountLatch的await方法的时候,这个线程会处于等待状态,其他线程任务中调用countDown方法,每次count减一,当count减到0为止,这个线程才...

2019-09-28 18:57:57 107

原创 git工作流

Git FlowGit Flow模型中定义了主分支和辅助分支两类分支。其中主分支用于组织与软件开发、部署相关的活动;辅助分支组织为了解决特定的问题而进行的各种开发活动。master和dev为主要分支。其他为辅助分支,与主分支不同,这些分支完成相应的任务,将被移除。master:可发布到生产环境的分支,只能merge其他分支,不允许push到此分支。hotfix:修复线上bug的分支,从...

2019-09-28 02:05:53 137

原创 Linux系统磁盘使用100%

查看磁盘使用情况,清理掉占用大量空间的日志之类的文件lsof | grep delete | awk '{print $2}' | xargs kill -9根据lsof查询文件被删除但是没有被杀死的进程,杀掉df 通过df指令可以查看磁盘的使用情况 a:显示全部的文件系统和各分割区的磁盘使用情形 i :显示i -nodes的使用量 k:大小用k来表示 (默认值) t:显示某一...

2019-09-26 00:15:34 557

原创 git 错误

git 错误error: failed to push some refs to解决办法:1、先拉下来, 会自动合并的(不用操心)git pull origin master2、再上传git push -u origin mastergit pull origin master --allow-unrelated-historiesIntelliJ IDEA 的 .idea 目录加...

2019-09-25 22:08:22 97

原创 git 常用命令

常用Git指令新建代码库# 初始化当前目录为git代码库git init# 创建目录并初始化git代码库,即该目录下的文件将被git管理mkdir 目录名称 && cd $_ && git init [project-name]配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。显示git配...

2019-09-25 22:03:53 116

原创 git 笔记

彻底搞懂 Git Rebase团队开发中 Git 最佳实践

2019-09-25 21:57:10 183

原创 java Future

FutureFuture 接口位于java.util.concurrent包下,是Java 1.5中引入的接口。Future主要用来对具体的Runnable或Callable任务 进行取消任务、判断任务是否完成、获取任务执行结果。当你提交一个Callable对象给线程池时,将得到一个Future对象,并且它和你传入的Callable示例有相同泛型。Future 接口中的5个方法:publ...

2019-09-25 09:41:59 411

原创 java内存结构、内存调优

JVM 运行时数据区根据 JVM 规范,JVM 运行时数据区共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。其中PC寄存器、java虚拟机栈和本地方法栈是每一个线程隔离的。java堆和方法区是所有线程共享的。程序计数器线程私有。PC寄存器(PC Register)的一种。当前线程执行java代码时,指向下一条要执行的指令。本地方法栈线程私有。这部分主要与虚拟机用到的 Nat...

2019-09-24 18:50:27 126

原创 java ForkJoinPool

ForkJoinPool 是Java 1.7 引入的一种新的并发框架—— ForkJoin Framework。ForkJoinPool 主要用于实现“分而治之”的算法,特别是分治之后递归调用的函数,例如 quick sort 等。ForkJoinPool 最适合的是计算密集型的任务,如果存在 I/O,线程间同步,sleep() 等会造成线程长时间阻塞的情况时,最好配合使用 ManagedBl...

2019-09-22 23:19:12 137

原创 多线程交替打印99~1

import cn.hutool.core.lang.Console;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 线程 t1,t2,t3 交替打印99,98...

2019-09-22 18:26:34 188 2

原创 java 线程池

线程池:提供了一个线程队列,队列中保存着所有等待状态的线程。避免了创建与销毁额外开销,提高了响应的速度。线程池的体系结构: java.util.concurrent.Executor : 负责线程的使用与调度的根接口 |--ExecutorService 子接口: 线程池的主要接口 |--ThreadPoolExecutor 线程池的实现类 |--ScheduledExecu...

2019-09-21 23:31:14 125

原创 java 读写锁

使用读写锁替代完全互斥的同步锁, 在写少读多的场景下可以提高效率(有写才互斥,全读可并发)。对于一个读写锁来说,同一时刻, 如果一个线程拿到了写锁,排斥其他线程获取锁,不管想要获取读锁 还是写锁,都必须等待;统一时刻,没有线程在写,都是在读的情况下, 不排斥 其他线程获取读锁 并发读取数据, 如果此时有线程想要获取写锁 的话、需要等到当前所有正在读的线程执行完成,才能获取到写锁。代码示例i...

2019-09-21 18:46:18 245

原创 java volatile

volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile 变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。———————————————...

2019-09-21 16:19:22 390

原创 java实现线程的第三种方式Callable

import cn.hutool.core.lang.Console;import cn.hutool.core.lang.Console;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;...

2019-09-21 14:45:32 195

原创 CountDownLatch闭锁

闭锁,多线程计数器;创建 闭锁对象CountDownLatch countDownLatch = new CountDownLatch(10); 倒数10此每次执行线程任务countDownLatch.countDown(); -1等待 计数器完成倒数操作countDownLatch.await();, 才往下继续执行import java.util.concurrent.CountD...

2019-09-21 14:03:35 111

原创 多线程笔记

sleep当前线程暂停执行,一段时间,之后继续wait当前线程进入阻塞状态,还有执行资格,需要被唤醒之后,继续竞争执行的机会守护线程Thread.setDaemon(true/false) // 在Thread.start()开启线程之前设置守护线程是为用户线程提供辅助的线程,当运行的只剩守护线程时,程序结束.停止线程Thread.stop(); // 过时方法,不推荐使用...

2019-09-20 16:36:48 213

原创 Java类继承时的注解、spirng组合注解

注解的可继承性: 注解上声明元注解**@Inherited**,然后在 Java类继承关系中,父类上声明的可继承注解,子类上不用声明,自动传承下来。java类继承时候的属性和方法上的注解: 子类定义与父类相同的属性时,父类属性上的可继承注解不会传承下来;子类覆盖父类方法,父类方法上的可继承注解不会传承下来。注解本身没有 继承或实现的特性,不过自定义注解可以组合其他注解(jdk获取注解的api不...

2019-09-05 13:53:01 933

原创 spring-data-jpa常用代码片段示例

jpa是一套规范,有多种实现,用的比较多的貌似是Hibernate吧。完整的Hibernate很难驾驭,jpa 用起来还是很简单的。根据Example查询JPA 的 Example 太鸡肋!! 不推荐使用例子一1. 创建实例User user = new User(); user.setUsername("建");2. 创建匹配器(字段:username,匹配方式:包含)Examp...

2019-09-01 15:46:34 429

main_menu.xml

完整汉化了mysql-workbench8.0版本的主菜单 使用方式:替换掉MySQLWorkbench的安装目录下的data\main_menu.xml,替换前请备份原版或将原版改名。 liunx版的路径:/opt/apps/com.mysql.workvbench/files/mysql-workbench/data/main_menu.xml

2021-05-30

MySQL必知必会 高清中文书签版 无广告 pdf

网上找到的都有广告,,看着很不爽,,我用pdf 编辑软件把广告 全删掉了。。

2018-03-21

plsqldeveloper12正式版_64位_汉化_破解版

plsqldeveloper12正式版_64位_汉化_破解_安装版,有说明文件

2018-01-04

linux wps 缺少字体

linux wps 缺少字体的deb包.

2016-09-03

eclipse svn插件

直接解压 放到Eclipse安装目录的dropins文件夹下,重启Eclipse就行了.

2016-09-03

MyEclipse2016 CI4破解(Win/Linux通用)

在网上找的两个破解文件,可以都试试。 在Deepin系统亲测可用。(我是把破解程序生成的key,code手动在MyEclipse填了一遍才成功的)

2016-08-14

pointofix1.72汉化版

教学用PPT时手写工具,可用于多媒体教学或网络教学时屏幕画笔手写 普通电脑用鼠标也能够有平板的感觉

2015-10-24

Windows右键菜单管理r1.2.exe

右键菜单太臃肿,很多东西是用不到的,马上来瘦身..

2015-10-10

Win 10优化辅助批处理工具

请右键以管理员身份运行批处理 2015年7月29日更新内容: 1、修复两处设置面板显示状态与系统状态不符的bug; 2、增加锁定IE主页设置项目; 3、调整一键优化界面和项目顺序; 4、修正禁用系统日志和内存转储优化项; 5、修正停止防火墙服务的代码错误。 6、修正关闭系统保护优化项 温馨提示: 1、以管理员身份运行; 2、菜单界面输入hide进入隐藏菜单项; 3、如果你尝试自行手动恢复所做更改时提示“某些设置由系统管理员进行管理”,原因是优化批处理调用了组策略,可打开组策略gpedit.msc找到对应项目(有点难找,肯定有)改回去即可,或者运行Windows8.1UpdateSettingTool.bat选择对应项目自动恢复。

2015-10-10

空空如也

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

TA关注的人

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