摘要:一、基于LinkedHashMap源码分析 方法调用流程(这里只是以put方法位例) put() -> putVal() -> afterNodeInsertion() -> removeEldestEntry() //向Map中添加元素 public V put(K key, V value) { 阅读全文
posted @ 2020-08-31 09:51 码农的进击 阅读(48) 评论(0) 推荐(0) 编辑
摘要:1、实现动态路由的关键是RouteDefinitionRepository接口,该接口存在一个默认实现(InMemoryRouteDefinitionRepository) 通过名字我们应该也知道该实现是将配置文件中配置的信息加载到内存中。因此无法实现动态路由。 2、如果想实现动态路由,我们可以参考 阅读全文
posted @ 2020-06-01 15:42 码农的进击 阅读(1161) 评论(0) 推荐(0) 编辑
摘要:面:你怎样理解volatile关键字时? 我:不加思索的说出,volatile修饰的成员变量,可保证线程可见性、不保证原子性和禁止指令重排。 面:你能谈谈什么是线程可见性吗? 我:各个线程对主内存中共享变量的操作都是各个线程各自拷贝到自己的工作内存进行操作,操作完成后再写回主内存中的.例如一个线程A 阅读全文
posted @ 2020-05-27 17:08 码农的进击 阅读(53) 评论(0) 推荐(0) 编辑
摘要:一、开闭原则 开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对 扩展开放,对修改关闭。 所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调 的是用抽象构建框架,用实现扩展细节。 可以提高软件系统的可复用性及可维护性。开 闭原则,是面向对象设计 阅读全文
posted @ 2020-05-27 09:26 码农的进击 阅读(135) 评论(0) 推荐(0) 编辑
摘要:一、 Spring 中常见的设计模式 工厂模式 : BeanFactory 装饰器模式: BeanWrapper 代理模式: AopProxy 单例模式: ApplicationContext 委派模式: DispatcherServlet 策略模式: HandlerMapping 适配器模式: H 阅读全文
posted @ 2020-05-26 17:14 码农的进击 阅读(189) 评论(0) 推荐(0) 编辑
摘要:一、事务的特性(ACID) 1、原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。 2、一致性(Consistency):执行事务前后,数据保持一致; 3、隔离性(Isolation):并发访问数据库时,一个用户的事物不被其他事物 阅读全文
posted @ 2020-05-26 17:13 码农的进击 阅读(309) 评论(0) 推荐(0) 编辑
摘要:一、使用注意事项 1、全局过滤器作用于所有的路由,不需要单独配置。 2、通过@Order来指定执行的顺序,数字越小,优先级越高。 二、默认全局拦截器的整体架构 三、实战场景,例如,校验token、记录请求参数(可参考这边https://www.cnblogs.com/hyf-huangyongfei 阅读全文
posted @ 2020-05-11 16:04 码农的进击 阅读(355) 评论(0) 推荐(0) 编辑
摘要:/** * @version 2019/8/14 * @description: 异常拦截器 * @modified: */ @Slf4j public class JsonExceptionHandler implements ErrorWebExceptionHandler { /** * Me 阅读全文
posted @ 2020-05-11 15:19 码农的进击 阅读(1535) 评论(0) 推荐(0) 编辑
摘要:Spring Cloud Gateway 获取请求体 一、直接在全局拦截器中获取,伪代码如下 private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest){ Flux<DataBuffer> body = ser 阅读全文
posted @ 2020-05-08 11:19 码农的进击 阅读(8677) 评论(21) 推荐(1) 编辑
摘要:在编Java程序的时候,我们经常会碰到annotation。比如:@Override 我们在子类继承父类的时候,会经常用到这个annotation。它告诉编译器这个方法是override父类的方法的。@WebServlet("/myservlet") 在进行Web开发的时候,我们用这个annotat 阅读全文
posted @ 2020-04-01 16:25 码农的进击 阅读(236) 评论(0) 推荐(0) 编辑