摘要:
前言 在生产中已有实践,本组件仅做个人学习交流分享使用。github:https://github.com/axinSoochow/redis-caffeine-cache-starter 个人水平有限,欢迎大家在评论区轻喷。 所谓二级缓存 缓存就是将数据从读取较慢的介质上读取出来放到读取较快的介质 阅读全文
摘要:
Redisson 分布式锁实战与 watch dog 机制解读 背景 据Redisson官网的介绍,Redisson是一个Java Redis客户端,与Spring 提供给我们的 RedisTemplate 工具没有本质的区别,可以把它看做是一个功能更强大的客户端(虽然官网上声称Redisson不只 阅读全文
摘要:
SpringBoot 拦截器获取http请求参数—— 所有骚操作基础 获取http请求参数是一种刚需 我想有的小伙伴肯定有过获取http请求的需要,比如想 前置获取参数,统计请求数据 做服务的接口签名校验 敏感接口监控日志 敏感接口防重复提交 等等各式各样的场景,这时你就需要获取 HTTP 请求的参 阅读全文
摘要:
Spring Cloud Feign 自定义配置(重试、拦截与错误码处理) 实践 本篇文章主要分享下 Feign 自定义配置的工程实践,希望你们可以找到些有用的东西,文章已被公众号收录 基于 spring-boot-starter-parent 2.1.9.RELEASE, spring-cloud 阅读全文
摘要:
用Map+函数式接口来实现策略模式 平时关注一些 java 领域相关的技术,希望你们能在这篇文章中找到些有用的东西。个人水平有限,如果文章有错误还请指出,在留言区一起交流。 本文已投稿至公众号 Hollis 原文链接:https://mp.weixin.qq.com/s/hkypvNBkRjPM6H 阅读全文
摘要:
在项目推进中,如果说第一件事是搭Spring框架的话,那么第二件事情就是在Sring基础上搭建日志框架,我想很多人都知道日志对于一个项目的重要性,尤其是线上Web项目,因为日志可能是我们了解应用如何执行的唯一方式。 在18年大环境下,更多的企业使用Springboot和Springcloud来搭建他 阅读全文
摘要:
[TOC] AOP可以用于日志的设计,这样话就少不了要获取上下文的信息,博主在设计日志模块时考虑了一下此法,整理了一下如何用AOP来拦截你自定义的注解。 自定义注解 首先先自定义一个注解 @Documented :注解表明制作javadoc时,是否将注解信息加入文档。如果注解在声明时使用了@Docu 阅读全文
摘要:
为什么ConcurrentHashMap的读操作不需要加锁? 我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢? ConcurrentHashMap的 阅读全文
摘要:
线程池源码解析 线程池的概念 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互。使用线程池可以很好的提高性能,尤其是程序中需要创建大量生存期很短暂的线程。 使用线程池的优势 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁的开销。 提高响应速度。当任务到达时,任务可以不需要等到 阅读全文
摘要:
分布式全局ID生成器设计 项目是分布式的架构,需要设计一款分布式全局ID,参照了多种方案,最后基于snowflake的算法设计了一款自用ID生成器。具有以下优势: 1. 保证分布式场景下生成的ID是全局唯一的 2. 生成的全局ID整体上是呈自增趋势的,也就是说整体是粗略有序的 3. 高性能,能快速产 阅读全文
摘要:
在阅读多线程书籍的时候,对volatile的原子性产生了疑问,问题类似于这篇 "文章" 所阐述的那样。经过一番思考给出自己的理解。 我们知道对于可见性,Java提供了volatile关键字来保证 可见性 、 有序性 。 但不保证原子性 。 普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什 阅读全文
摘要:
理解单链表的反转(java实现) 要求很简单,输入一个链表,反转链表后,输出新链表的表头。 反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是斐波那契数列和单链表反转,递归方法实现链表反转比较优雅,但是对于不了解递归的同学来说还是有理解难度的。 递归法 阅读全文
摘要:
FeignClient注解属性configuration不生效问题排查思路 问题背景 我们知道,"如果需要自定义单个Feign配置,Feign的@Configuration 注解的类不能与@ComponentScan 的包重叠,这样会如果包重叠,将会导致所有的Feign Client都会使用该配置" 阅读全文
摘要:
Spring 动态数据源 动态数据源是什么?解决了什么问题? 在实际的开发中,同一个项目中使用多个数据源是很常见的场景。比如,一个读写分离的项目存在主数据源与读数据源。 所谓动态数据源,就是通过Spring的一些配置来自动控制某段数据操作逻辑是走哪一个数据源。举个读写分离的例子,项目中引用了两个数据 阅读全文
摘要:
Spring Feign 注入失败问题排查思路 问题的表现很明显,就是在spring容器中找不到被@FeignClient标注类的实例: *************************** APPLICATION FAILED TO START ************************* 阅读全文
摘要:
tif格式图片转换为gif、png、jpg格式(Java实战) tif的格式的图片通常很大,且不能被浏览器直接预览,一般处理方案都是服务端将其转换为jpg、png等格式的图片,再由前端进行展示。 网络上也有很多转换格式的样例,但大都比较麻烦,本次实践使用开源组件 thumbnailator 来实现图 阅读全文
摘要:
Spring Boot 自定义kafka 消费者配置 ContainerFactory最佳实践 本篇博文主要提供一个在 SpringBoot 中自定义 kafka配置的实践,想象这样一个场景:你的系统需要监听多个不同集群的消息,在不同的集群中topic冲突了,所以你需要分别定义kafka消息配置。 阅读全文