![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 59
HuH...
这个作者很懒,什么都没留下…
展开
-
seata解决分布式事务
什么是Seata: Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务, Seata将为用户提供了AY,TCC,SAGA和XA事务模式,为用户打造一站式的分布式解决方案。 连接:seata TC (Transaction Coordinator) - 事务协调者 维护全局和分支事务的状态,驱动全局事务提交或回滚。 TM (Transaction Manager) - 事务管理器 定义全局事务的范围:开始全局事务、提交或回滚全局事务。 RM (Re...原创 2021-08-28 22:37:15 · 535 阅读 · 0 评论 -
接口幂等性
1.什么是幂等性 接口幂等性就是用户对于统一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生不同的效果,比如支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣除了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户发现余额多扣除了钱,流水记录也变成了两条,这就是没有保证接口的幂等性。 2.哪些情况需要防止 用户多次点击按钮 用户页面返回再次提交 微服务互相调用,由于网络问题,导致请求失败,feign触发重试机制 其他 ...原创 2021-08-26 18:14:47 · 105 阅读 · 0 评论 -
关于Feign远程调用丢失请求头问题
当我们使用微服务时,由于功能独立于不同的服务,那么存在一种场景,就是当我们的其中一个服务需要去访问另一个服务进行远程调用时, 当我们需要调用的这个接口如果是不需要登陆的话,那还好,直接可以调用成功, 那么如果这个被调用的接口它是需要用户登陆过后才可以获取的呢,那么我们的远程调用就会失败 现在在前后端分离的模式下,一般是前端向后端请求接口时,都是在·请求头里面添加令牌, 然后后端统一处理,也就是说是用到了请求头的。 而远程调用需要登陆的接口服务的话,在进行远程调用时,是会创建一个新.原创 2021-08-26 14:58:39 · 283 阅读 · 0 评论 -
密码加密补充
之前我们使用的密码加密普遍是使用的是md5加密。 MD5加密是不可被破解的,在网上出现的一些可以破解md5的网站或者工具,其实都是使用的暴力破解 是预先将一些密码加密后进行存储,然后将密文于我们要解码的密文进行比较,从而得到原密码。 那么从这个信息我们也可以得知,相同内容的密码加密后的密文其实是一样的, 那么解决办法就是使用加盐的方式。 当然spring security也提供了一个工具类可以用来加密 bCryptPasswordEncoder BCryptPasswordEncoder.原创 2021-08-22 20:38:53 · 1882 阅读 · 0 评论 -
CompletableFutrue异步编排
引出问题: 虽然线程池可以解决线程的频繁创建和销毁的工作,但有一个场景,但靠线程池是无法完成的, 那就是如果一些业务场景中,某一些请求需要等待其他的请求返回的结果然后在进行操作。或许有人会说,线程不是有那个等某个线程执行完后在执行的吗,还有一些并发包下的一些类也可以实现。 但是那样都是非常不方便的,也许功能真的可以实现,但不建议,因为java还有其他的解决办法 就是使用CompletableFuture来实现 public class CompletableFuture<T..原创 2021-08-22 15:26:39 · 135 阅读 · 0 评论 -
简单java-包装类
基本类型有八种 包装类就有8个 byte Byte short Short int Integer long Long char Character boolean Boolean float Float ...原创 2019-10-13 22:42:44 · 84 阅读 · 0 评论 -
简单java-迭代器
迭代 即Collection集合元素的通用获取方式,在获取元素之前先判断集合中有没有元素,有,就取 出,知道取完,这种就称为迭代 java.util public interface Iterator<E> 对 collection 进行迭代的迭代器 方法 boolean hasNext()...原创 2019-10-14 12:45:13 · 104 阅读 · 0 评论 -
简单java-Map
Map public interface Map<K,V> 两个泛型 ,一个键,一个值 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 Collection<E> Map<K,v> 单列集合 双列集合 每次...原创 2019-10-15 16:41:07 · 124 阅读 · 0 评论 -
Lambda表达式与函数式接口
Lambda ( java8新特性) 什么是Lambda表达式 lambda表达式是一个匿名函数,使的代码更加简单,简洁 函数式编程思想 面向对象过分强调必须通过对象的形式来做事,而函数式思想则尽量忽略面向 对象的复杂语法--强调做什么,而不是以什么形式做 jdk1.8加入了Lambda表达式的重量级新特性 Lamb...原创 2020-08-07 19:03:17 · 98 阅读 · 0 评论 -
Stream流
Stream 流式思想 Stream流是1.8才出现的 Stream流是一个来自数据源的元素队列 元素是特定类型的对象,也就是有泛型,java中的Stream并不会存储元素, 而是按需计算 数据源 流的来源,可以是集合,数组等 和...原创 2020-08-07 19:02:55 · 101 阅读 · 0 评论 -
Arrays
Arrays 该类是一个工具类,所有的方法都是静态方法 此类包含用来操作数组(比如排序和搜索)的各种方法 toString方法如 toString(Object[] o)返回指定数组内容的字符串表示形式 还有八个重载的方法,分别是八种基本数据类型的数组参数 如[2,3,4,5] 的形式 九个hashCode方法 分别是八种基本数据类和Object组成的数组作为参数 作...原创 2020-08-07 19:00:10 · 58 阅读 · 0 评论 -
Scanner
Scanner类 public final class Scannerextends Objectimplements Iterator<String> 一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。 Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配 例如 Scanner sn=new Scanner(Sy...原创 2020-08-07 19:06:21 · 89 阅读 · 0 评论