摘要:tif格式图片转换为gif、png、jpg格式(Java实战) tif的格式的图片通常很大,且不能被浏览器直接预览,一般处理方案都是服务端将其转换为jpg、png等格式的图片,再由前端进行展示。 网络上也有很多转换格式的样例,但大都比较麻烦,本次实践使用开源组件 thumbnailator 来实现图 阅读全文
posted @ 2021-01-27 16:30 上帝爱吃苹果-Soochow 阅读(66) 评论(0) 推荐(0) 编辑
摘要:Redisson 分布式锁实战与 watch dog 机制解读 背景 据Redisson官网的介绍,Redisson是一个Java Redis客户端,与Spring 提供给我们的 RedisTemplate 工具没有本质的区别,可以把它看做是一个功能更强大的客户端(虽然官网上声称Redisson不只 阅读全文
posted @ 2021-01-26 19:48 上帝爱吃苹果-Soochow 阅读(331) 评论(0) 推荐(0) 编辑
摘要:SpringBoot 拦截器获取http请求参数—— 所有骚操作基础 获取http请求参数是一种刚需 我想有的小伙伴肯定有过获取http请求的需要,比如想 前置获取参数,统计请求数据 做服务的接口签名校验 敏感接口监控日志 敏感接口防重复提交 等等各式各样的场景,这时你就需要获取 HTTP 请求的参 阅读全文
posted @ 2020-09-08 17:42 上帝爱吃苹果-Soochow 阅读(2110) 评论(0) 推荐(2) 编辑
摘要:Spring Cloud Feign 自定义配置(重试、拦截与错误码处理) 实践 本篇文章主要分享下 Feign 自定义配置的工程实践,希望你们可以找到些有用的东西,文章已被公众号收录 基于 spring-boot-starter-parent 2.1.9.RELEASE, spring-cloud 阅读全文
posted @ 2020-08-25 13:31 上帝爱吃苹果-Soochow 阅读(2364) 评论(0) 推荐(0) 编辑
摘要:用Map+函数式接口来实现策略模式 平时关注一些 java 领域相关的技术,希望你们能在这篇文章中找到些有用的东西。个人水平有限,如果文章有错误还请指出,在留言区一起交流。 本文已投稿至公众号 Hollis 原文链接:https://mp.weixin.qq.com/s/hkypvNBkRjPM6H 阅读全文
posted @ 2020-06-24 15:27 上帝爱吃苹果-Soochow 阅读(1057) 评论(1) 推荐(1) 编辑
摘要:在项目推进中,如果说第一件事是搭Spring框架的话,那么第二件事情就是在Sring基础上搭建日志框架,我想很多人都知道日志对于一个项目的重要性,尤其是线上Web项目,因为日志可能是我们了解应用如何执行的唯一方式。 在18年大环境下,更多的企业使用Springboot和Springcloud来搭建他 阅读全文
posted @ 2018-12-11 13:04 上帝爱吃苹果-Soochow 阅读(92529) 评论(26) 推荐(44) 编辑
摘要:[TOC] AOP可以用于日志的设计,这样话就少不了要获取上下文的信息,博主在设计日志模块时考虑了一下此法,整理了一下如何用AOP来拦截你自定义的注解。 自定义注解 首先先自定义一个注解 @Documented :注解表明制作javadoc时,是否将注解信息加入文档。如果注解在声明时使用了@Docu 阅读全文
posted @ 2018-11-13 15:58 上帝爱吃苹果-Soochow 阅读(17273) 评论(0) 推荐(2) 编辑
摘要:为什么ConcurrentHashMap的读操作不需要加锁? 我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢? ConcurrentHashMap的 阅读全文
posted @ 2018-09-12 09:47 上帝爱吃苹果-Soochow 阅读(19944) 评论(6) 推荐(17) 编辑
摘要:线程池源码解析 线程池的概念 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互。使用线程池可以很好的提高性能,尤其是程序中需要创建大量生存期很短暂的线程。 使用线程池的优势 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁的开销。 提高响应速度。当任务到达时,任务可以不需要等到 阅读全文
posted @ 2018-07-24 17:22 上帝爱吃苹果-Soochow 阅读(2476) 评论(0) 推荐(4) 编辑
摘要:分布式全局ID生成器设计 项目是分布式的架构,需要设计一款分布式全局ID,参照了多种方案,最后基于snowflake的算法设计了一款自用ID生成器。具有以下优势: 1. 保证分布式场景下生成的ID是全局唯一的 2. 生成的全局ID整体上是呈自增趋势的,也就是说整体是粗略有序的 3. 高性能,能快速产 阅读全文
posted @ 2018-07-21 18:52 上帝爱吃苹果-Soochow 阅读(7210) 评论(4) 推荐(3) 编辑
摘要:在阅读多线程书籍的时候,对volatile的原子性产生了疑问,问题类似于这篇 "文章" 所阐述的那样。经过一番思考给出自己的理解。 我们知道对于可见性,Java提供了volatile关键字来保证 可见性 、 有序性 。 但不保证原子性 。 普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什 阅读全文
posted @ 2018-07-02 18:13 上帝爱吃苹果-Soochow 阅读(4696) 评论(6) 推荐(1) 编辑
摘要:理解单链表的反转(java实现) 要求很简单,输入一个链表,反转链表后,输出新链表的表头。   反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是斐波那契数列和单链表反转,递归方法实现链表反转比较优雅,但是对于不了解递归的同学来说还是有理解难度的。 递归法 阅读全文
posted @ 2018-06-23 18:34 上帝爱吃苹果-Soochow 阅读(31085) 评论(11) 推荐(7) 编辑
摘要:tif格式图片转换为gif、png、jpg格式(Java实战) tif的格式的图片通常很大,且不能被浏览器直接预览,一般处理方案都是服务端将其转换为jpg、png等格式的图片,再由前端进行展示。 网络上也有很多转换格式的样例,但大都比较麻烦,本次实践使用开源组件 thumbnailator 来实现图 阅读全文
posted @ 2021-01-27 16:30 上帝爱吃苹果-Soochow 阅读(66) 评论(0) 推荐(0) 编辑
摘要:Redisson 分布式锁实战与 watch dog 机制解读 背景 据Redisson官网的介绍,Redisson是一个Java Redis客户端,与Spring 提供给我们的 RedisTemplate 工具没有本质的区别,可以把它看做是一个功能更强大的客户端(虽然官网上声称Redisson不只 阅读全文
posted @ 2021-01-26 19:48 上帝爱吃苹果-Soochow 阅读(331) 评论(0) 推荐(0) 编辑
摘要:SpringBoot 拦截器获取http请求参数—— 所有骚操作基础 获取http请求参数是一种刚需 我想有的小伙伴肯定有过获取http请求的需要,比如想 前置获取参数,统计请求数据 做服务的接口签名校验 敏感接口监控日志 敏感接口防重复提交 等等各式各样的场景,这时你就需要获取 HTTP 请求的参 阅读全文
posted @ 2020-09-08 17:42 上帝爱吃苹果-Soochow 阅读(2110) 评论(0) 推荐(2) 编辑
摘要:Spring Cloud Feign 自定义配置(重试、拦截与错误码处理) 实践 本篇文章主要分享下 Feign 自定义配置的工程实践,希望你们可以找到些有用的东西,文章已被公众号收录 基于 spring-boot-starter-parent 2.1.9.RELEASE, spring-cloud 阅读全文
posted @ 2020-08-25 13:31 上帝爱吃苹果-Soochow 阅读(2364) 评论(0) 推荐(0) 编辑
摘要:用Map+函数式接口来实现策略模式 平时关注一些 java 领域相关的技术,希望你们能在这篇文章中找到些有用的东西。个人水平有限,如果文章有错误还请指出,在留言区一起交流。 本文已投稿至公众号 Hollis 原文链接:https://mp.weixin.qq.com/s/hkypvNBkRjPM6H 阅读全文
posted @ 2020-06-24 15:27 上帝爱吃苹果-Soochow 阅读(1057) 评论(1) 推荐(1) 编辑
摘要:Spring Boot 自定义kafka 消费者配置 ContainerFactory最佳实践 本篇博文主要提供一个在 SpringBoot 中自定义 kafka配置的实践,想象这样一个场景:你的系统需要监听多个不同集群的消息,在不同的集群中topic冲突了,所以你需要分别定义kafka消息配置。 阅读全文
posted @ 2020-04-26 20:19 上帝爱吃苹果-Soochow 阅读(6567) 评论(2) 推荐(1) 编辑
摘要:Java 重载方法的匹配规则 含有变长参数方法的匹配 本文用一个例子来展示 含有变长参数的重载方法是如何匹配的 重载方法的匹配规则: ——引用自《深入拆解 Java 虚拟机》 重载的方法在编译过程中即可完成识别。具体到每一个方法调用,Java 编译器会根据所传入参数的声明类型(注意与实际类型区分)来 阅读全文
posted @ 2020-04-26 17:04 上帝爱吃苹果-Soochow 阅读(386) 评论(0) 推荐(0) 编辑
摘要:为什么会产生jar包冲突,如何排查jar包冲突? [TOC] Jar包冲突产生的原因 我们知道maven有传递性依赖机制,举例来说,当我们需要A的依赖的时候,就会在pom.xml中引入A的jar包;而A的jar包中依赖了B的jar包,这样Maven在解析pom.xml的时候,会依次将A、B 的jar 阅读全文
posted @ 2019-12-24 21:23 上帝爱吃苹果-Soochow 阅读(3477) 评论(2) 推荐(2) 编辑
摘要:SpringBoot 整合mongoDB并自定义连接池 得力于SpringBoot的特性,整合mongoDB是很容易的,我们整合mongoDB的目的就是想用它给我们提供的mongoTemplate,它可以很容易的操作mongoDB数据库。 为了自定义连接池,我们在配置类中主要与MongoClient 阅读全文
posted @ 2019-12-05 21:58 上帝爱吃苹果-Soochow 阅读(5496) 评论(3) 推荐(2) 编辑
摘要:Java使用Optional与Stream来取代if判空逻辑(JDK8以上) 通过本文你可以用非常简短的代码替代业务逻辑中的判null校验,并且很容易的在出现空指针的时候进行打日志或其他操作。 注:如果对Java8新特性中的lambda表达式与Stream不熟悉的可以去补一下基础,了解概念。 首先下 阅读全文
posted @ 2019-09-21 17:21 上帝爱吃苹果-Soochow 阅读(6299) 评论(0) 推荐(1) 编辑