spi~在插件开发过程中的使用

spi是原生java的组件,通过META-INF/services目录进行注册,通过ServiceLoader进行加载,一般可以用在组件开发中,你在公用组件中封装好逻辑,将个性化的部分抽象出一个接口,接口通过spi的方式进行加载,在外部开发人员引用你的组件之后,通过实现接口来扩展个性化的功能,再通过 ...

在 SpringBoot 项目中简单实现 JWT 验证

使用 SpringBoot 提供 api 的时候,我更喜欢使用 jwt 的方式来做验证。网上有会多 Spring Security 整合 jwt 的,也有 Shiro 整合 jwt 的,感觉有点复杂。这里分享一下自己在项目中的简单实现。 依赖包 除了 SpringBoot 基本的依赖,需要一个生成 ...

HashMap源码分析 (基于JDK1.8)

基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,... ...

Amazon RDS 教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Amazon RDS初学者教程 - 从基本到高级概念的简单简单步骤学习Amazon RDS,其中包括概述,环境,接口,数据库实例,数据库存储,MS SQL功能,MS SQL创建数据库,MS SQL连接到数据库, MS SQL DB导出导入,带有SSL的MS SQL DB,MS SQL DB ...

3.SpringSecurity+登录功能+jwt校验过滤器+redis配置

SpringSecurity+登录功能+jwt校验过滤器+redis配置 一、思路分析 1.登录 ①自定义登录接口 调用ProviderManager的方法进行认证 如果认证通过生成jwt 把用户信息存入redis中 ②自定义UserDetailsService 在这个实现类中去查询数据库 注意配置 ...

CICS教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 CICS快速指南 - 从CICS概述,环境,基本术语,Nucleus,事务,COBOL基础知识,BMS,MAP,接口块,伪编程,辅助密钥,文件处理,错误处理,控制操作,简单而简单的步骤学习CICS临时存储,互通,状态代码。 CICS代表客户信息控制系统。 CICS由IBM于1968年开发。 ...

基于arthas热更新class脚本

1. 概述 本地更新脚本是基于arthas工具的retransform命令热替换class,此方法用于在不重启项目的前提下,替换更新的class,如关键类添加打印日志,排查线上问题 但是arthas工具的命令稍显复杂,有那个时间还不如重新部署,因此需要一个可以快速替换的工具来进行替换 2. 方法一: ...

针对单一key加读写锁

一、什么是读写锁 读写锁是JDK1.5提供的一个工具锁,适用于读多写少的场景,将读写分离,从而提高并发性。 二、读写锁的特点 读锁是共享锁,写锁是排他锁,读锁和写锁不能同时存在; 读锁不能升级为写锁; 写锁可以降级为读锁; 三、锁的本质 锁的本质就是锁住一块资源而不是一块代码. 在常见的一些代码实现 ...

亚马逊商城入门教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 亚马逊商城快速指南 - 从简单和简单的步骤开始学习亚马逊商城,从基本到高级概念,包括为什么选择亚马逊?,亚马逊优势,帐户类型,销售什么?,产品列表,费用,帐户设置,购买盒,运输方式,列出新产品,定价工具,获取最高利润,价格计算器,税务处理,运输流程,亚马逊卖家中心,管理库存,创建报告,管理 ...

【踩坑记录】@Transactional注解回滚不生效问题

@Transactional属于是Spring的常用事务处理注解了,最近在开发时偶然发现这个东西竟然不是100%生效的。 问题重现: 测试一个批处理方法,方法上加了@Transactional后执行,因为加了事务处理注解,没怎么关注SQL执行顺序(反正对事务来说都是原子性的),debug过程发现Mo ...

我是如何用CAP和BASE两个基础理论卷死其他组员的?

本文内容整理自博学谷狂野架构师 ​ CAP 定理又被称作布鲁尔定理,是加州大学的计算机科学家布鲁尔在 2000 年提出的一个猜想。2002 年,麻省理工学院的赛斯·吉尔伯特和南希·林奇发表了布鲁尔猜想的证明,使之成为分布式计算领域公认的一个定理。 ​ 布鲁尔在提出CAP猜想时并没有具体定义 Cons ...