> Yuyy
Yuyy
Yuyy

保持一颗探索的心

实战代理模式,模拟Mybatis

实战代理模式,模拟Mybatis 在使用mybatis操作数据库时,我们只需要定义一个接口,然后在xml里编写对应的sql,就能查询数据。其原理是Mybatis通过@mypperscan指定扫描的mapper接口路径,对mapper接口进行动态代理,生成的代理类通过解析xml得到对应sql,最终开发人员只…

   82   2021-10-19   去看看

使用双花括号初始化集合,可别这么干

Double Brace Initialization should not be used 前言 最近在修改sonar问题时,发现有人使用双花括号初始化集合,提示可能发生内存泄漏。这种初始化方式倒是见过,只知道是使用了匿名内部类,但没有意识到这个问题。 实测 A 提供两种Map的初始化方法,为了观察是否被…

   190   2021-09-10   去看看

HashMap源码解读:扩容

HashMap源码解读:扩容 引言 HashMap的扩容是个很重要的操作,jdk1.7往前这里会发生死链问题,都是值得研究的。我最开始以为HashMap线程不安全的原因是因为扩容,没有注意到jdk版本的影响,就去看1.8的扩容为啥会发生死链,但因此也发现了这个方法里的巧妙设计。 分析 …

   91   2021-09-09   去看看

查找第K小/大数据,千万数据排序

思路 刚开始我以为这题的考点是如何快速读取文件(因为这是公司多线程学习分享后布置的作业),我就用多线程来解题。后来出题人跟我说:200m测试数据时我的程序OOM了,我才醒悟这题的考点不是快速读取文件,而是大文件排序。 这题挺有意思的,解题运用了多路归并,有个…

   239   2021-03-17   去看看

动态代理+读写锁实现线程安全的HashMap缓存工具类

背景 jdk1.8之前是没有线程安全的集合工具类,例如currentHashMap,那怎样实现高效、线程安全的集合工具类呢? 可以利用读写锁实现线程安全,动态代理帮助集合作为工具类,产生更多的使用场景,例如缓存 代码 1. 创建缓存基类和子类 基类里的读写锁 private ReadWri…

   253   2020-11-15   去看看

利用Mybatis拦截器,全局处理入库字段

利用Mybatis拦截器,全局处理入库字段 场景 需要对某张表的个别字段删除全部空格、替换半角括号,但是项目里入口比较多,不止有前端录入,还有接口接收的数据。即使现在全部入口处理了,后续新增入口也不能保证。所以需要统一处理,一劳永逸。 实现 EnableCustomInterc…

   20   2022-01-08   去看看

全局日志记录traceId

全局日志记录traceId 单体应用为了更方便的排查问题,使用过滤器+日志框架的MDC功能,实现每个请求产生的日志,都包含一个UUID。 定义过滤器 @Component @Order(1) public class TraceFilter extends OncePerRequestFilter { public static final String TRACE_ID…

   25   2022-01-03   去看看

Spring Boot多任务并发处理

Spring Boot多任务并发处理 创建公共线程池 @ConfigurationProperties(prefix = "common-thread-pool") @Data @Slf4j @Configuration @EnableAsync public class CommonThreadPoolConfig implements AsyncConfigurer { public static final String COMMO…

   23   2022-01-03   去看看

【SpringCloud】六、Open Feign

Open Feign Feign Feign声明式WebService客户端,旨在使编写Java Http客户端变得更容易,通过注解来使用。 Open Feign Open Feign是SpringCloud在Feign的基础上进行了封装,使之支持SpringMVC的注解和HttpMessageConverters(Http请求/响应与Java对象之间的转换)。 默…

   24   2022-01-03   去看看

【SpringCloud】五、Ribbon

Ribbon 简介 Spring Cloud Ribbon也是基于Netflix Ribbon实现的一套客户端负载均衡和服务调用的工具。可配置连接超时、重试的机制,实现自定义负载均衡算法。 GitHub Ribbon已进入维护模式,未来可能会被Spring Cloud Loadbalancer替代。 Ribbon本地负载均衡,在…

   32   2022-01-01   去看看

【SpringCloud】四、Eureka集群

Eureka集群 高可用、故障容错 负载均衡 节点之间相互注册,相互守望 cloud-eureka-server7001:Eureka集群 application-7001.yml server: port: 7001 eureka: instance: hostname: eureka7001.com #eureka服务端的实例名称 client: #false表示不向注…

   41   2021-12-17   去看看

【SpringCloud】三、Eureka

Eureka Eureka停更说明 https://github.com/Netflix/eureka/wiki Eureka 2.0 (Discontinued) The existing open source work on eureka 2.0 is discontinued. The code base and artifacts that were released as part of the existing repository of work on the 2.x…

   57   2021-12-17   去看看

【SpringCloud】二、项目基础搭建

IDEA搭建项目必要操作 字符编码 Settings - File encoding-utf8 勾选Transparent native-to-asciic on version,目的是properties文件使用Unicode编码 注解生效 Settings - Annotation Processors-enable Java编译版本选8 过滤文件,不展示在idea左侧目录 Setti…

   42   2021-12-15   去看看

LeetCode:扁平化嵌套列表迭代器_341

思路 这题我使用了两种解法 遍历N叉树 首先分析题目得知,该数据结构是N叉树,需要的是所有叶子节点 迭代器惰性求值 从时间复杂度的角度来看,遍历N叉树为O(N),遍历了所有节点,但我们是不需要非叶子节点的,不过要得到叶子结点,不得不遍历非叶子结点,所以没有提升…

   45   2021-12-15   去看看

【SpringCloud】一、微服务架构简介

什么是微服务 微服务是2014年提出的概念 微服务是一种架构风格 一个应用拆分为一组小型服务 每个服务运行在自己的进程内,也就是可独立部署和升级 服务之间使用轻量级HTTP交互 服务围绕业务功能拆分 可以由全自动部署机制独立部署 去中心化,服务自治。服务可以使用不…

   58   2021-11-29   去看看
加载更多
分类
归档
我的其他站点
友链
标签
近期文章