- 博客(33)
- 资源 (2)
- 收藏
- 关注

原创 spring cloud gateway全局过滤器 向request header中放数据
exchange.getRequest().getHeaders().set(); 是不能向 headers中放文件的这时配置一个gateway全局过滤器 filter中 做了向 header放数据/** * @Description 全局过滤器 在这里可以实现记录日志和访问权限校验等 * @Author changyandong@e6yun.com * @Created D...
2018-07-16 17:25:49
45548
15
原创 Java中的装箱与拆箱
装箱与拆箱是jdk5以后提供的功能在jdk5之前Integer i = new Integer(2);Integer j = Integer.valueOf(3);jdk5之后Integer i = 2;public class Main { public static void main(String[] args) { Integer i = 10; int n = i; }}这样一段代码实际上在编译后的字节码文件中其实装箱就是调
2020-08-18 15:43:46
229
1
原创 线程池原理中文描述
public static void main(String[] args) { ExecutorService executorService = new ThreadPoolExecutor(5,10,1000L, TimeUnit.MICROSECONDS,new ArrayBlockingQueue<Runnable>(3),new DefaultManagedAwareThreadFactory()); IntStream.range(0,14).for
2020-07-31 13:54:31
273
原创 springboot加载json配置
首先要写一个PropertySourceLoader 的实现public class JSONPropertySourceLoader implements PropertySourceLoader { @Override public String[] getFileExtensions() { return new String[]{"json"}; } @Override public List<PropertySource<?&
2020-06-19 10:47:07
2549
原创 maven指定多源码路径
实际场景中 有时会有在一个src下区分多个不同源码包的情况 ,maven 中的一个插件提供了这个功能<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions>
2020-05-20 13:51:29
833
原创 修改FeginCilent定义的服务名到指定服务
通过覆盖类来修改对应的服务名,这里将所有的FeginClient对应的服务名都修改好。package org.springframework.cloud.openfeign;import java.io.IOException;import java.net.MalformedURLException;import java.net.URI;import java.net.URISyntaxException;import java.net.URL;import java.util.Arra
2020-05-11 15:59:46
401
原创 Spring Cloud Gateway如何获取body体数据
org.springframework.cloud.gateway.handler.predicate.ReadBodyPredicateFactory 中定义 在路由中配置了该谓词 就可以将 body体中的数据放到exchange.getAttribute(“cachedRequestBodyObject”);我们怎么使用呢?@Bean public RouteLocator req...
2020-04-22 17:10:36
4244
11
原创 apollo动态刷新ConfigurationProperties注解标注的配置类
默认情况下 apollo无法刷新 ConfigurationProperties标注的属性实时更新我查看官方文档他推荐了两种实现思路@RefrashScope和通过EnvironmentChangeEvent这两个都是在spring-cloud-context中提供的我简单举个例子/** * @Description * @Author changyandong * @Emoji...
2020-04-20 14:52:37
1850
原创 ReentrantLock和AQS解析
本文参考了https://blog.youkuaiyun.com/javazejian/article/details/75043422ReentrantLock是在多线程问题处理中常用的锁结构,作为一种排它锁 他比 synchronized要灵活,使用上却要比 synchronized复杂一些。要了解ReentrantLock的原理就不得不提到AQS,AQS 即 AbstractQueuedSynchr...
2020-04-10 11:15:25
362
原创 ClassLoader的理解与双亲委派机制和违反双亲委派
这里大量参考了如下博客https://blog.youkuaiyun.com/javazejian/article/details/73413292ClassLoader是一个抽象类,他有很多个实现BootstrapClassLoader是最顶层的classloader 负责加载jvm需要的类 <JAVA_HOME>/lib路径下的核心类库或-Xbootclasspath参数指定的路径下的j...
2020-03-31 11:44:20
662
原创 Spring Cloud Gateway基于服务发现Hystrix配置
适用版本 spring cloud gateway 2.0.0 及以上 之前的版本我没使用过,说不定可以行。最初我们用的是这种配置方式spring.cloud.gateway.default-filters[1].name=Hystrixspring.cloud.gateway.default-filters[1].args.name=fallbackcmdspring.cloud.gat...
2019-10-10 17:25:06
4552
1
原创 编译netty出现\common\src\main\java\io\netty\util\AbstractConstant.java:0: invalid newline character (exp
最近在 研究netty源码时发现,import io.netty.util.collection.LongObjectHashMap;import io.netty.util.collection.LongObjectMap;这两个包找不到 查询后发现他们在这里需要手动打包后才能生效这时在 common下执行 mvn clean install 发现报错[ERROR] E:\myWo...
2019-09-24 15:49:16
3442
原创 HashMap jdk 1.8源码分析
首先放上参考的博客 https://blog.youkuaiyun.com/v123411739/article/details/78996181 jdk1.8之前 的hashMap 是基于数组加链表的形式的,jdk1.8 oracleJdk优化了jdk的源码 采用数组加链表 或者数组加红黑树的形式 在链表上挂的数据超过一定长度后就会转为红黑树 。我先搬上面博客的一点内容:几个点...
2019-04-17 09:23:41
194
原创 LinkedList源码分析
在我的印象里LinkedList的使用场景并没有ArrayList多,我一度认为ArrayList并没有LinkedList复杂,毕竟LinkedList是链表实现的。但是在我读完LinkedList的源码后发现,LinkedList的源码并没有ArrayList那么多的数组copy。只是单纯的链表操作。首先看类定义public class LinkedList<E> ex...
2019-01-15 17:44:41
2194
原创 ArrayList源码分析(着重迭代器安全删除)
ArrayList是我们最常用的集合类型之一,大家都知道他的底层实现是数组。最近刚好想研究一下jdk的源码,就从ArrayList开始看吧。本来我想写的 但是我看完源码在查资料的时候发现 这个老哥写的很好,跟我的想法很像,下面贴出链接https://blog.youkuaiyun.com/starexplode/article/details/80469079他有些地方没写全 我这里补充一下比如迭代器...
2019-01-15 17:44:01
513
原创 spring cloud gateway通过注册中心(eureka)聚合swagger
在spring cloud 的使用的时候,我发现测试起来很不方便,需要使用Postman等类似的工具来调用我们的接口,这显然是很麻烦的,那么有没有一种方式可以让我们在gateway里使用swagger来测试呢。本文基于Finchley.RELEASE和最新版的Finchley.SR2,这两个版本有所改动,后面介绍。答案是肯定的,我查阅资料发现了之前有人实现了zuul网关的聚合swagger,通过...
2018-11-14 08:54:06
3261
4
原创 spring cloud gateway 启动流程及原理分析
spring cloud gateway 作为新一代的微服务网关已经发布了一段时间,我从7月份开始使用到现在已经4个月了。但是我一直处于一种只会使用,原理一知半解的水平。我们小组作为公司微服务产品的实践者,我自己作为组中一员完成了spring cloud gateway的开发,也解决了很多棘手的问题,却对它的原理和启动流程一知半解,好几次就是因为不了解它的启动流程,导致开发受挫,进度缓慢。现在正值...
2018-11-06 17:19:02
7904
原创 spring cloud gateway聚合swagger
在spring cloud 的使用的时候,我发现测试起来很不方便,需要使用Postman等类似的工具来调用我们的接口,这显然是很麻烦的,那么有没有一种方式可以让我们在gateway里使用swagger来测试呢。答案是肯定的,我查阅资料发现了之前有人实现了zuul网关的聚合swagger,通过他的思路我自己写了一些类,首先需要,在gateway网关中创建三个类,下面贴出来SwaggerHandl...
2018-10-17 17:07:52
2409
原创 Eureka原理分析
#总结eureka内部实际上是分为三个实例的,分别是Client,Server和Instance,Eureka-Client启动,创建Instance实例,封装成对象,推送给server,server接收Instance对象,返回实例集合,并签订租约,client定时发动续租请求到server,server维护各个instance实例,服务之间调用不通过eureka。#Eureka-Clie...
2018-10-11 16:50:46
3529
2
原创 springboot启动前执行方法的几种方式
第一种 @PostConstruct注解@Configurationpublic class Test1 { @Autowired private Environment environment; @PostConstruct public void test(){ String property = environme...
2018-10-11 16:49:59
9476
原创 spring boot 1.5.x系统怎么使用spring boot admin 2.0
用过spring boot admin2.0的人 再回去用spring boot admin 1.5 就会感觉像是退化了一样,但是默认情况下spring boot 1.5.x不能使用 admin2.0的内容下面是页面对比这是admin1.5的页面 用angular.js写的 虽然功能都有 但是页面难看这是2.0的页面是不是比1.5好看不少我现在的想法是还是用spring boot1.5...
2018-10-11 16:46:27
2737
14
原创 spring cloud gateway获取请求的真实地址
在使用spring cloud gateway的时候,路由一般配置为服务名 例如 lb://BASE-API-WEB/xxx/bbb 路径,我们无从知道,他真正路由到什么地方去了。经过查看源码我发现了,org.springframework.cloud.gateway.filter.LoadBalancerClientFilter这个filter中 对lb请求进行了处理,转换成真正的...
2018-09-12 10:57:04
31307
9
原创 spring cloud gateway自定义filter重定向
在自定义filter里返回值是一个Mono<Void> 如果业务处理发现数据有问题就要返回这时就有了第一种实现,retrun 一个Mono.empty();这种处理办法显然是有问题的,用户根本无从知道他的数据问题在哪。你返回Mono<Void>没有任何意义。只是让fliter停止了而已。这时就要去查看源码里怎么写的了,我发现了org.springfr...
2018-08-21 15:07:44
18954
原创 spring boot 1.5.x系统怎么使用spring boot admin 2.0
这篇文章已经迁移到https://blog.youkuaiyun.com/qq_37616173/article/details/83014952
2018-08-14 18:06:18
1524
3
原创 spring boot admin2.0上手
首先创建一个springboot项目基于2.x pom文件如下 作为spring boot admin服务端<?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...
2018-08-14 17:58:49
653
原创 spring cloud gateway简单构件
gateway网关用来分配路由,实现负载均衡启动gateway创建一个简单的springboot2.x项目,这里不做介绍gateway pom.xml <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="htt...
2018-07-16 17:18:56
1401
原创 oracle存储过程中 使用游标做循环封装数据集
需求是 双11活动结束后根据活动id 给参与的用户发京东E卡券,每个用户无论参与多少次 只发一个。这时就存在一个查到很多个用户符合条件 要一一发短信的结果集了。create or replace procedure "PRO_SEND_SMS_ECARD" ISno_result exception; -- 定义游标 cursor c_acc is SELECT
2017-11-13 15:22:20
1249
原创 使用js实现复制功能
首先下载 复制文件所需的js文件https://github.com/zenorocha/clipboard.js点击这里下载源码然后写测试 复制我的这段代码,将js文件引入进来 function-target Copy 点击按钮复制内容
2017-09-22 14:59:36
794
原创 (快排实例)查询一个数组中第n大的元素
package cyd;/** * 查询一个数组中第n大的元素 * 借用了快速排序的思想, * 我先选定一个标定值 然后将数组等分小于这个数的放在左边 大于的放在右边 这时标定值的位置是正确的 我们将它返回去 跟我们的n比较 * 如果返回值大于n我们 就只需要查左边的数据 如果小于n 就只需要查右边的数据 然后递归求解 即可 * * 只需要O(2n) 的时间复杂度 就能查
2017-09-20 15:31:06
732
原创 两种O(nlogn)级别的排序,归并排序和快速排序
最近重新学习了算法中的排序算法,相较于几个O(n^2)级别的排序算法(冒泡排序,选择排序,插入排序,希尔排序等) O(nlogn)级别的排序算法有普遍更快的速度,相对于O(n^2)级别的排序算法来说也更难理解。下面我把我最近学习这两个排序的想法说一下。归并排序:归并排序就是将数组不断的等分,等分到一组只有一个数,然后向上合并,例如第一次合并只有自己 就直接合并,然后就会变成两两一组 这时就有大
2017-09-20 15:23:38
372
原创 redis计数器解决用户同一时间多次提交
思路分析: 由于用户网速以及其他原因,前端的js限制没有起作用,所以要在后端加判断。由于并发量还算比较大,所以不采用线程锁。 思路1: 在数据库表格中添加唯一索引 例如:将userId 和 createTime 绑定成一组唯一索引。如果这两个值同时相同,不予许插入。
2017-08-30 16:43:13
1859
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人