自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 springcloud+nacos实现灰度发布

【代码】springcloud+nacos实现灰度发布。

2023-08-15 20:01:32 465

原创 压测性能调优之gateway网关

【代码】压测性能调优之gateway网关。

2023-07-06 10:19:26 2075

原创 idea选择提交内容合并分支步骤

idea合并代码

2023-06-26 19:35:22 131

原创 redisson的redis连接池大小配置修改方案

redis连接池参数配置。

2023-06-09 18:00:48 2708

原创 sentinel持久化方案

sentinel持久化

2023-02-15 21:01:48 1168

原创 OutOfMemory内存溢出问题排查

OutOfMemory

2022-12-07 12:31:59 1297

原创 MySql的LOAD DATA LOCAL INFILE大批量导入数据到MySQL的实现demo

1.表结构CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `a` int(11) NOT NULL, `b` bigint(20) unsigned NOT NULL, `c` bigint(20) unsigned NOT NULL, `d` int(10) unsigned NOT NULL, `e` int(10) unsigned NOT NULL, `f` int(10) uns

2022-05-16 22:37:14 142

原创 String常量池与intern()方法底层原理

String s = new String(“a”)+new String(“b”);//返回堆中指向“ab”对象的地址String s2 = s.intern();System.out.println(s2 == “ab”);System.out.println(s == “ab”);1.7和1.8结果都是true,true;1.new都是会到堆中创建对象,当然new String(“a”)+new String(“b”);这个编译会优化成new String(“ab”);这个时候常量池中是.

2022-04-28 16:07:04 132

原创 BitMap

BiMap算法

2022-03-16 22:38:12 177

原创 MySql联合索引分析

将时间和重复度高字段建立联合索引时,为什么重复字段高的字段放到前面反而能走索引分许?问题实例如下图:根据文章:https://www.alibabacloud.com/blog/optimizing-mysql-composite-index-in-innodb_595057得出的答案如下图:...

2021-03-25 17:40:57 70

原创 git中config文件demo

[core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = true[remote “origin”]url = https://github.com/hahaxw/demo-project.gitfetch = +refs/heads/:refs/remotes/origin/[branch “master”]remot

2021-01-25 09:38:07 74

原创 从源码的角度去分析Semaphore的运行原理

1. Semaphore的原理Semaphone的是一个拥有计数信号量,也就是说它可以对这个计数器的信号量设置一个固定大小的阀值,当出现多线线程竞争的时候,对这个阀值进行扣减,当阀值扣减到零时,线程会阻塞放入到同步队列中,等待获取到了信号的线程释放锁后唤醒,当有获得了信号的线程释放了锁后,会去唤醒它的后继节点上的线程,这个后继线程就会去争夺同步状态,如果争夺成功,就拿到了执行权,等待cpu调度, 如果失败,则继续阻塞等待被再次唤醒。2. 源码分析acquire获取信号(也就是获取锁)

2020-07-09 17:14:28 195

原创 导入spring源码到idea的完整步骤

导入spring源码到idea的完整步骤1.到github上找到spring-framework代码,然后将代码fork到码云上,步骤地址如下: https://cloud.tencent.com/developer/article/15896752.下载gradle,安装gradle(注意idea和gradle对应的版本,楼主使用的是2019.2版本的idea和5.2.1版本的gradle)3.按照spring-framework目录中的import-into-idea.md文件的步骤进行编译4

2020-07-01 20:24:11 470

原创 jdk动态代理和CGLIB动态代理

1.CGLIB与JDK动态代理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP 3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换

2020-05-19 20:51:43 99

原创 使用自定义注解和java反射机制实现自定义表映射注解

1.代码demo如下:package com.itmayiedu.test;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import java.lang.reflect.Field;@Target(ElementType.F

2020-05-18 21:14:54 137

原创 使用java反射机制和dom4j写一个简版spring-ioc

1.新建一个springboot项目 <groupId>com.springioc</groupId> <artifactId>spring-ioc</artifactId> <version>1.0-SNAPSHOT</version>2.在pom文件中引入 <dependency> <groupId>org.apache.commons</groupId

2020-05-15 17:42:43 118

原创 在SpringBoot中使用Filter过滤器解决跨域问题

1.在SpringBoot的启动类中加上@ServletComponentScan注解,使@WebFilter注解启用2.代码:package com.walmart.ecrecon_server;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRes

2020-05-09 09:28:18 637

原创 访问webapps下的文件出现404问题,截器中注入bean实例时出现为空的问题,项目启动后创建文件夹

1.将excel导出的文件放到tomcat的webapps下的目录中时,excel文件中带有中文,会出现404问题。2.在拦截器中注入bean实例时,出现为空的问题,那是因为拦截器的加载时间是在springcontext上下文之前,解决办法如下: 获取WebApplicationContext, 根据 WebApplicationContext 获取相应的bean private T g...

2020-03-31 14:18:49 338

原创 sql数据库全外连接和sqlserver2008分页

1.全外连接(full outer join)select p.,oi.from winxin_b pfull outer join bas_order_info oi on oi.order_id = p.order_id2.分页查询,语法如下:offset #{currentPage,jdbcType=INTEGER} rows fetch next #{limit,jdbcType...

2020-03-11 09:34:01 121

原创 k8s学习地址

https://www.kubernetes.org.cn/coursehttps://www.cnblogs.com/harlanzhang/p/10045975.htmlhttps://jimmysong.io/kubernetes-handbook/practice/dashboard-upgrade.htmlhttps://www.kubernetes.org.cn/5462.htm...

2020-03-06 16:20:33 125

原创 SqlServer2008中with(nolock)的使用原因和场景

SqlServer2008with(nolock)的使用原因和场景https://blog.csdn.net/xzg1109/article/details/79492863

2020-02-28 16:42:16 403

原创 java并发编程知识点总结

1、jsconsl检测死锁问题2、Javap -verbose java.class 打开字节码文件3、偏向锁:偏向锁等到出现多线程竞争的时候会释放;适用于单线程;当线程进来后检查锁标志位是不是偏向锁,如果是再查看偏向锁的线程id是不是与当前线程id一致,如果是一致的话就直接进入代码中,第一次进来的时候需要获取偏向锁,第二次以后就只需要对比当前线程id是否与偏向锁线程id一致。3.1轻量级锁...

2019-12-18 16:56:59 105

原创 Exchanger(数据交换)的使用demo

1.在A线程和B线程中分别使用使用exchanger(value)方法,A线程中的 exchanger(aValue)方法的返回值返回的是B线程中exchanger(bValue)进去的值bValue,也就是说在A线程调用exchanger(aValue)的返回值是bValue,B线程则反之。2.代码如下package cn.shiyujun.thread;import java.util...

2019-12-18 16:50:00 113

原创 jdk8中的StampedeLock锁的使用与原理

1、stampeLock的原理(1)读锁并不会阻塞写锁:当写的时候读失败了,再重新读。(2)分为乐观锁和悲观锁,乐观锁时读写不互斥,悲观锁读写互斥。(3)悲观锁不互斥的原理:获取读写锁的时候都会返回一个标识,然后在 读得时候使用validate(long)方法来判断是否发生了写操作,如果发生 了就再次进行读取。(4)StampedLock的等待队列与RRW的CLH队列相比,有以下特点:...

2019-12-17 16:54:42 245

原创 简易web服务器

1、代码如下package com.httpserver.server;import java.io.*;import java.net.Socket;import java.util.Date;import java.util.HashMap;import java.util.Map;public class ServerThread implements Runnable {...

2019-12-17 09:50:45 124

原创 使用AQS手动实现锁的获取与释放

package cn.shiyujun.thread.thread4;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;import java.util.c...

2019-12-16 10:28:35 112

原创 使用AQS重写自己的锁

源码分析:1、lock()加锁调用AbstractQueuedSynchronizer类的acquire(int arg)方法如下:public final void acquire(int arg) {if (!tryAcquire(arg) &&acquireQueued(addWaiter(Node.EXCLUSIVE), arg))selfInterrupt()...

2019-12-10 19:53:11 113

原创 实现数字加字母的组合排序("AA","A1","A2","A3","A4","BB","B1","B2","B3","B4","CC","C1","C2","C3","C4")

1.将字母排在前面数字排下后面ORDER BY nameRight regexp '^[0-9]',space desc2.排序完整sql的demoselect name,left(name,1) nameLeft,right(name,1) nameRight from store ORDER BY nameLeft,nameRight regexp '^[0-9]',convert...

2019-10-29 09:12:55 455

原创 spring事务回滚的demo

1.contrller层代码@RestController@RequestMapping("transactionnalDemo")public class TransactionnalDemoController { @Autowired TransactionnalDemoService transactionnalDemoService; @RequestM...

2019-10-23 15:47:14 266

原创 Spring AOP和AspectJ AOP有什么区别

Spring AOPAspectJ在纯 Java 中实现使用 Java 编程语言的扩展实现不需要单独的编译过程除非设置 LTW,否则需要 AspectJ 编译器 (ajc)只能使用运行时织入运行时织入不可用。支持编译时、编译后和加载时织入功能不强-仅支持方法级编织更强大 - 可以编织字段、方法、构造函数、静态初始值设定项、最终类/方法等…。只能在...

2019-09-23 17:01:59 2978

原创 method方式post变成get的问题

参数: http://telemanapi.telemex.io/api/v1/transfer/history 请求方式是:POST问题描述:使用postman请求时服务器中method变成了get.出现问题的原因:生产中是https请求,而我使用的postman确实http请求.解决办法:将http修改成https...

2019-08-29 14:44:56 2032 1

原创 获取请求者的ip方法

1.代码如下 protected String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))...

2019-08-22 09:47:45 541 1

原创 国际区号和电话号码剥离

1.引入pom依赖<!-- https://mvnrepository.com/artifact/com.googlecode.libphonenumber/libphonenumber --> <dependency> <groupId>com.googlecode.libphonenumber</groupId...

2019-08-22 09:44:13 380

原创 使用docker构建一个.jar的简单镜像

#docker创建镜像和容器的步骤1.创建Dockerfile文件#指定基础镜像jdk8(本机中的镜像)FROM java:8-jdk#将syex-new-grpc.ja映射成grpc-test.jarADD syex-new-grpc.jar /grpc-test.jar#暴露端口EXPOSE 8802###配置容器启动后执行的命令ENTRYPOINT [ "bash",...

2019-08-13 17:11:33 193

原创 linux系统中springboot项目jar包后台启动命令

spring boot 项目后台启动命令(jar包形式启动)nohup java -jar syex-grpc.jar >nohup.log 2>&1 &

2019-07-15 17:13:28 1665

原创 使用geteway网关中的GlobalFilter过滤器进行token验证

GlobalFilter过滤器进行token验证GlobalFilter过滤器代码部分JwtFactory和redis的MAVEN依赖JwtFactory生成token(身份令牌):代码部分工具类代码:token认证认证部分代码:GlobalFilter过滤器代码部分import com.alibaba.fastjson.JSONObject;import demo.utils.JwtCon...

2019-06-24 10:51:10 11183 3

空空如也

空空如也

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

TA关注的人

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