【基础系列】 自定义的动态配置刷新实现示例

前面介绍过几篇自定义的配置源绑定的方案,也介绍过

【基础系列】自定义属性配置绑定极简实现姿势介绍

III. 不能错过的源码和相关知识点

0. 项目

1. 微信公众号: 一灰灰Blog

尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

下面一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

一灰灰blog


打赏 如果觉得我的文章对您有帮助,请随意打赏。
分享到

【WEB系列】 长整型精度丢失问题修复方案

javascript以64位双精度浮点数存储所有Number类型值,即计算机最多存储64位二进制数。 但是需要注意的是Number包含了我们常说的整形、浮点型,相比较于整形而言,会有一位存储小数点的偏移位,由于存储二进制时小数点的偏移量最大为52位,计算机存储的为二进制,而能存储的二进制为62位,超出就会有舍入操作,因此 JS 中能精准表示的最大整数是 Math.pow(2, 53),十进制即9007199254740992 大于9007199254740992的可能会丢失精度

因此对于java后端返回的一个大整数,如基于前面说到的雪花算法生成的id,前端js接收处理时,就可能出现精度问题

接下来我们以Thymeleaf模板渲染引擎,来介绍一下对于大整数的精度丢失问题的几种解决方案

查看更多

分享到

【DB系列】 自定义雪花算法生成分布式id

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,比如常见的基于数据库自增主键生成的id,随机生成的uuid,亦或者redis自增的计数器等都属于常见的解决方案;本文我们将会重点看一下业界内大名鼎鼎的雪花算法,是如何实现分布式id的

查看更多

分享到

【DB系列】 SQL执行日志打印的几种方式

sql日志打印,再我们日常排查问题时,某些时候帮助可以说是非常大的,那么一般的Spring项目中,可以怎么打印执行的sql日志呢?

本文将介绍三种sql日志打印的方式:

  1. Druid打印sql日志
  2. Mybatis自带的日志输出
  3. 基于拦截器实现sql日志输出

查看更多

分享到

【WEB系列】 基于JWT的用户鉴权实战

再传统的基于session的用户身份认证方式之中,用户相关信息存储与后端,通常基于cookie来携带用户的会话id,然后后端在基于会话id查到对应的用户身份信息;区别于session的身份认证方式,jwt作为一个基于RFC 7519的开发标准,提供了一种通过JSON形式的web令牌,用于在各系统之间的安全可信的数据传输、身份标识

本文将主要介绍jwt的相关知识点,以及如何基于jwt来实现一个简单的用户鉴权方案

查看更多

分享到

【基础系列】自定义属性配置绑定极简实现姿势介绍

使用过SpringBoot应用的小伙伴应该对它配套的配置文件application.yml不会陌生,通常我们将应用需要的配置信息,放在配置文件中,然后再应用中,就可以通过 @Value 或者 @ConfigurationProperties来引用

那么配置信息只能放在这些配置文件么? 能否从db/redis中获取配置信息呢? 又或者借助http/rpc从其他的应用中获取配置信息呢?

答案当然是可以,比如我们熟悉的配置中心(apollo, nacos, SpringCloudConfig)

接下来我们将介绍一个不借助配置中心,也可以实现自定义配置信息加载的方式,并且支持配置的动态刷新

查看更多

分享到

【基础系列】 编程式属性绑定Binder

SpringBoot中极大的简化了项目中对于属性配置的加载方式,可以简单的通过 @Value, @ConfigurationProperties 来实现属性配置与Java POJO对象、Bean的成员变量的绑定,那如果出现一个某些场景,需要我们手动的、通过编程式的方式,将属性配置与给定的pojo对象进行绑定,我们又应该怎么实现呢?

查看更多

分享到

【WEB系列】 实战之基于WebListener实现实时在线人数统计

很多pc网站都有一个实时在线人数的统计功能,那么一般这种是采用什么方式来实现的呢? 这里我们介绍一个最基础的是实现方式,基于Session结合WebListener来实现在线人数统计

查看更多

分享到

【WEB系列】 Session与Cookie

虽然我们现在基本上已经进入了分布式session的时代了,但是在切实去看最新的oauth, sso, jwt等各种登录方案之前,我们有必要学习一下最早的cookie/session方案,看一下它们是怎么协同工作的,又有什么局限性

查看更多

分享到

【中间件】内存缓存Caffiene自定义CacheManager

上一篇介绍了Caffiene整合Spring的缓存注解@Cacheable,在这篇示例中,所有的缓存公用,但是实际的场景中,我们可能会更希望针对不同的场景,配置不同的缓存(比如我的关键数据,虽然访问频率可能没那么高,但是每次实际读取的成本很高,又不怎么变动,我希望可以更长久的缓存;不希望这些数据因为缓存的淘汰策略被其他的热点数据给淘汰掉),那么可以怎么处理呢?

接下来我们来看一下两种不同的方式,来实现上面的诉求

查看更多

分享到

【中间件】内存Caffeine整合Cachebale注解

前面一片文章虽说介绍了Caffeine的使用方式,但是更多的是偏向于基础的Caffeine用法;接下来这边博文将给大家介绍一下Caffeine结合Spring的@Cacheable注解,来实现内部缓存的使用姿势

查看更多

分享到

【中间件】内存缓存Caffeine基本使用

Caffeine作为当下本地缓存的王者被大量的应用再实际的项目中,可以有效的提高服务吞吐率、qps,降低rt

本文将简单介绍下Caffeine的使用姿势

查看更多

分享到