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