自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 sqlserver监听

exec sys.sp_readerrorlog 0,1,‘listening’

2024-06-23 17:51:18 114

原创 java文件加密

【代码】java文件加密。

2024-05-06 08:57:48 178

原创 docker-compse安装fastdfs

【代码】docker-compse安装fastdfs。

2024-04-26 11:21:18 257 3

原创 logback添加日志行号

【代码】logback添加日志行号。

2024-04-22 09:33:38 343

原创 jenkins离线安装一波

后面配置仓库时要引用该变量${branch}上面写上参数变量 为branch。

2024-02-19 09:51:27 672

原创 Eclipse项目运行Tomcat问题集锦

【代码】Eclipse项目运行Tomcat问题集锦。

2024-01-05 09:24:59 581 1

原创 虚拟机扩容实战

【代码】虚拟机扩容实战。

2023-04-19 14:37:41 140

原创 k8s来一波

【代码】k8s来一波。

2023-02-04 19:00:38 745

原创 来自idea的远程问候-docker远程访问

来自idea的远程问候-docker远程访问

2022-11-04 16:58:30 200

原创 窥探cas登录

单点登录cas

2022-10-31 18:59:32 351

原创 含辛茹苦ES6转ES5

项目 js 没有用 vue 的福音情景问题 项目有很多新的 js 语法 es6 es7 等等 如你所愿市面上很多浏览器已经大部分支持这些与语法了 但是 ie 就差强人意了 直接歇菜如何解决 利用 node 插件完成语法降级实施情景 # 安装babel npm install --save-dev @babel/core # 安装转码规则 npm install --save-dev @babel/preset-env # 规则加入 babel.config.json

2022-03-30 16:13:28 1160

原创 sql打印-基于log日志

直接上代码package xxx;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.Arrays;import java.util.HashSet;import java.util.List;import java.util.Objects;import java.util.Set;impo

2022-03-18 17:42:40 893

原创 来来来,继续打印sql,利用 mybatis 插件功能

这里打印sql利用 mybatis 插件功能 补充知识 Mybatis拦截器能拦截 Executor、ParameterHandler、StatementHandler、ResultSetHandler 四个对象里面的方法 核心逻辑 找到 ClientPreparedStatement.toString() 执行它 这里选用 ParameterHandler 对象拦截 为什么呢 因为所有sql都需要设置参数啊 不区分查询和更新多好 注意自带插件拦截功能会先于拦截的方法执行 也就是

2022-03-14 16:44:13 1130

原创 温故而知新-MyBatis打印完整sql-新方式

温故而知新-MyBatis打印完整sql-新方式寻找突破点织入打印sql逻辑ConnectionLogger 代理逻辑JavassistUtil寻找突破点 打印完整sql的好处不用多说,参数多的sql福音 找准切入点很关键 ClientPreparedStatement 是 Statement 的标准实现 所有 mysql 的连接都会调用它执行查询语句 里面的 toString() 方法可是福音 它会完整打印 sql (填充好的查询参数) 试想只要我们在它执行 execute() 方法时织

2022-03-07 10:45:43 876

原创 Arthas 反手就是一顿操作

运行java -jar arthas-boot.jar选择要监控的java进程序号查看class文件sc *.类名 // 注意不是全类名哦jad 全路径类名 // 看反编译的文件jad 全路径类名 >D://xxx.java // 输入编译的文件到指定文件

2021-11-30 13:58:25 142

原创 一起用注解过滤数据吧

背景工作中肯定用到根据某某机构去过滤数据也就是权限控制这类数据想当然就应该用 SpringAOP 去实现思路首先规定用什么标志让 Spring 识别当前方法需要数据过滤优雅的使用自定义注解是个不错的选择注解里面传入当前要进行数据过滤的 Class 对象即可业务实体类对象里面需要声明一份公共的 OrgIds List 格式用来存放过滤后的查询条件自定义 DataFilter 注解package ;import java.lang.annotation.Documented;

2021-10-14 10:12:47 886

原创 你一定没遇到的AOP失效场景

老生常谈 AOP 失效感觉老生常谈了 无非就是 @Transactional 注解用错位置 要不就是本类自身调用 导致 AOP 失效遇到问题 项目中个别 service 事务没有生效 于是开始对比 service 类和其他 service 有什么区别 然并卵 找了个寂寞 奇思妙想 既然 AOP 在个别 service 层失效 那我把 AOP 放在 controller 层呢 果然事务生效了 此次验证说明了 service 事务是没有问题的 有问题的是 service 层没有

2021-08-27 15:13:53 841

原创 跟我一起定制tk-mapper

用过mybatis都清楚tk-mappertk-mapper 批量保存操作不知道用过没有 感觉很鸡肋就是动态拼接批量插入语句效率低就算了 可是还硬性规定 接口限制实体包含id属性并且必须为自增列并且字段为null也会插入 想想心都累了 有的字段有默认值 你插入null 数据库统统报错搞了很久终于把字段为null这一诟病给治好了利用注解和反射给字段标注默认值1. 定义默认值注解package ;import java.lang.annotation.Documented;import j

2021-08-27 09:55:11 171

原创 kafka 你卡了吗

kafka 你卡了吗概念区分发布订阅模式消息传给多个消费者服务端推给消费者 还是消费者主动拉消息当然是拉啊 消费者底层维护长轮训topic将消息分类patition提高集群并发 同一个topic 可以有多个patition 分散在多个服务器上leader/follower这里的 leader和followe是作用于 patition上 leader管理 patition follower 只复制分区副本消费组组就是业务应用分类 不同消费组可以同时消费

2021-05-17 16:17:42 122

原创 潜入 JVM 垃圾

解释 threadlocal 内存泄露原理简释 jvm内存模型jvm内存 统称运行时数据区堆 和 方法区(元空间) 为多线程共享的数据线程栈 和 本地方法栈 和 程序计数器 线程私有数据垃圾回收主要是操作堆内存何为 垃圾对象先说什么不是垃圾对象栈里有 变量 指向 堆的引用 就不算垃圾对象如何判断是 垃圾对象1. Reference Count 在对象头上标记引用量 引用消失一个 count减一 存在问题不能解决对象循环引用问题2. Root Searching 根可达

2021-04-15 11:56:11 124

原创 短小精悍的 ribbon

2021-04-14 09:44:19 76

原创 敬畏历史 Dubbo 源码

源码环境搭建maven install 编译源码 请使用 -DarchetypeCatalog=internal -Dfile.encoding=GBK构建项目用 eclipse 会报错 Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:flatten-maven-plugin:1.2.5:flatten不用慌这表示m2e在其执行maven的生命周期管理时没有定义该插件所以提示出错 其实m2e对此

2021-04-09 18:16:05 138

原创 温文尔雅的 zookeeper

无脑源码环境搭建zk 下载地址:https://github.com/apache/zookeeper/tree/release-3.5.4ant 下载地址:https://ant.apache.org/bindownload.cgi因为 zk 是由 ant 来构建所以需要使用 ant 命令来转换成工程导入开发工具配置 ANT_HOME 环境变量打开 cmd 找到 zk 解压路径,在 zk 根路径下执行 ant eclipse这里环境搭建不是重点所以详细操作步骤参考 https://blog

2021-04-08 15:06:57 157 2

原创 nacos 新鲜源码解读

nacos服务端存储数据结构Map<namespace,Map<group::serviceName, Service>>第一次服务端先创建空的service开启定时任务心跳检查解决并发访问服务内存列表问题 copyOnWrite 思想虽然用的是并发 map 只能高并发应对不同key 同时写用一个 key 还是会出现线程等待对比eureka 同步思想eureka存在只读缓存和读写缓存他们之间会进行同步 详细过程待补充服务端启动 死循环 从 阻塞队列取新实

2021-04-06 18:34:10 221 1

原创 spring mvc 深度解析

透过现象看本质聊聊声明一个controller有三种方式 可能的你就以为有一种方式吧使用 @Controller 注解@Controllerpublic class AnnotationController { @RequestMapping("/annotationController") @ResponseBody public void testAnnotationController() { System.err.println("testAnnotationControlle

2021-04-06 14:35:30 79

原创 继AQS后又一队列之 Condition

简单上手定义一个 BoundedBuffer 类 封装 put 和 take 方法实例化一个写线程条件锁 final Condition notFull = lock.newCondition();实例化一个读线程条件锁 final Condition notEmpty = lock.newCondition();put 方法 先用 ReentrantLock.lock() 锁住当前线程判断 写入的数量队列是否满了满了 notFull.await(); // 阻塞写线程没满 写入数据

2021-03-30 18:11:50 60

原创 HystrixCommand注解使用

使用Spring Cloud时绕不开Hystrix,他帮助微服务实现断路器功能。Hystrix具备服务降级,服务熔断,线程和信号隔离,请求缓存,请求合并以及服务监控等强大功能。让我们来看一下这个注解的简单应用:package com.example.demo.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;imp

2021-03-30 11:35:34 3033

原创 MySql索引原理追溯

初识索引不为知 再见已是人上人磁盘块计算机规定每个扇区存 512 字节每一个框磁盘块是页大小 16KB磁盘块是系统虚拟划分不是真实存在磁盘块是由若干个扇区组成 磁盘快和扇区是一对多关系每磁盘块是由 32 个扇区组成 (16*1024/512=32) 主键尽可能少的占用空间 varchar > 4 字节 的主键建议用 int 类型MySql最多容纳数据量上图主键和指针占 10 字节 每磁盘块是 16k所有三层结构最多可以存储 16000/10=16001600

2021-03-29 11:18:52 113

原创 接口限流之 Semaphore 思考

业界成熟的方案有很多Google开源工具包Guava提供的限流工具类RateLimiterSpringCloud提供的@HystrixCommand注解今天我主要是看一下jdk官方提供的Semaphore信号量情景预热Semaphore用来控制同时操作某个资源的操作数量。Semaphore管理着permits,每当一个线程来获取许可时,permits数减 1 ,当permits数小于0时,再来获取许可的资源就需要阻塞简单上手声明一份全局 Semaphore 变量private

2021-03-27 15:21:49 156

原创 Linux安装MySql 5.6

1、卸载老版本MySQL查找并删除mysql有关的文件find / -name mysql rm -rf #上面命令查找到的路径,多个路径用空格隔开或者下边一条命令即可 find / -name mysql|xargs rm -rf 2、在安装包存放目录下执行命令解压文件:tar -zxvf mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz 3、删除安装包,重命名解压后的文件rm -rf mysql-5.6.24-linux-glibc2.5-

2021-03-24 15:22:22 874 1

原创 MySql高效实现递归

MySql从8.0开始支持递归查询了CREATE TABLE `t_area` ( `id` int NOT NULL AUTO_INCREMENT, `parent_id` int DEFAULT NULL, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

2021-03-24 14:58:00 464

原创 电脑迁移虚拟机无法连接网络不慌不忙

首先查看虚拟机软件为当前虚拟机生成的mac地址vim /etc/sysconfig/network-scripts/ifcfg-System_eht0修改tpaddr为自定义的ip 要和虚拟机软件里指定的网卡在一个网段修改hwaddr为虚拟机软件生成的mac修改name为eth0vim /etc/udev/rules.d修改name为eth0 修改attr为虚拟机软件生成的mac删掉多余的eth配置reboot 系统...

2021-03-24 10:22:48 1057

原创 图解基于AQS队列实现的CountDownLatch和CyclicBarrier

CountDownLatchCyclicBarrier

2021-03-20 17:09:59 175

原创 跟我一起AQS SOS AQS

ReentrantLock简单介绍先拿ReentrantLock来说说把里面有AQS抽象队列的实现类NonfairSync和FairSync 分别实现的是非公平和公平锁抽象队列是一个双向队列 里面有node节点 每个node节点存放当前线程 还有pre和next 和 waitStatus状态值ReentrantLock实现原理简单一句话 自旋(for) cas park抽象队列不存在锁竞争时是不会初始化的不会有额外的内存消耗存在锁竞争时会初始化一个空的node节点 thread=null 然

2021-03-20 11:31:55 64

原创 spring容器加载过程

bean生命周期springboot自动装配是在BeanFactoryPostProcessor@Component@ComponentScan@import @bean涉及到的类ConfiguratinClassPostProcessor@PostConstruct @PreDestroy注解涉及的类commonAnnotationBeanPostProcessor循环依赖解决循环依赖先创建a ,a中有b...

2021-03-15 17:46:10 120

原创 豆沙绿保护你的双眼

十六进制C7EDCA无效修改二进制C7EDCA

2021-03-10 15:50:42 89

原创 动态刷新mapper看过来

提供一个mybatisplus的mapper文件动态刷新配置类方便开发时使用,不用每次修改xml文件后都要去重启应用package com.xxx.config;import java.util.Arrays;import java.util.List;import java.util.Set;import org.apache.commons.collections4.IteratorUtils;import org.apache.ibatis.session.SqlSessionFa

2021-02-18 16:17:01 1793 5

原创 maven鲜为人知的标签

一.dependencyManagementdependencyManagement用在父pom中用来统一管理项目的版本号, 确保各个子项目的依赖和版本一致子项目可以不用声明版本号, 但是一定要显示声明引用父pom的jar不然不会默认导入父pom的所有依赖父pom <dependencyManagement> <dependencies> <dependency> <groupI

2021-02-05 14:13:17 114

原创 maven巧妙排除父pom的依赖

项目中引入架构师搭好的父pom工程<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd

2021-02-05 11:53:26 27436 10

原创 快速excel导出

快速excel导出编写了一个工具类 为了防止多线程操作poi故存threadLocalpackage xxx;import org.apache.poi.hssf.util.HSSFColor;import org.apache.poi.ss.usermodel.*;import org.apache.poi.ss.util.CellRangeAddress;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.

2021-01-15 16:11:27 88 1

空空如也

空空如也

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

TA关注的人

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