Java
文章平均质量分 88
Java相关
九月清晨柳成荫
磨砺修仙,法力无边。
展开
-
关于ThreadLocal的那点事
ThreadLocal是什么 ThreadLocal类提供线程内部的局部变量,在多线程环境(即多线程并发场景)访问时能够保证变量相对独立于其他线程内的变量(即线程隔离),用于关联线程和线程上下文(意味着可以通过ThreadLocal在同一线程下,不同的组件里传递共用变量)。 @Data public class ThreadDemo2 { private ThreadLocal<String> tl = new ThreadLocal<>(); public sta原创 2021-12-19 20:56:28 · 1617 阅读 · 0 评论 -
职责链模式 - 一个有顺序且有等级的模式
在生活中,一件事情需要经过多个对象处理是比较常见的场景。比如,请假流程。假设有这样一个设定:直属领导可批准2天以内的假期,二级领导可以批准4天以内的假期,一级领导可以批准7天以内的假期(最多只可7天)。那么员工必须根据请假的天数找不同的领导申请,这样是比较麻烦的,员工需要记住具体的领导的相关信息。那么有没有这样一种方式:员工只需要提交请假申请到自己的直属领导,无需关心其他领导的信息,就能得到处理?那么答案就是:职责链模式(责任链模式)。 1、定义 为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求原创 2021-08-03 10:26:27 · 709 阅读 · 1 评论 -
接口调用幂等性问题及解决方案
什么是接口调用幂等性问题? 现如今我们的系统大多拆分为分布式架构、微服务架构,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者RESTFUL,既然是通信,那么就有可能在服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么就会多次点击按钮,这样请求有多次,那么处理数据的结果是否要统一呢?那是肯定的! 接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的, 不会因为多次点击而产生了副作用:比如说支付场景,用户购原创 2020-07-02 22:13:27 · 2536 阅读 · 0 评论 -
Spring - JSR303数据校验
在做项目的时候需要对表单的值进行校验,只有校验通过才能提交,一般来说前端和后端都需要做校验,JSR303是做后端校验的一种方式。 JSR303简介 JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务,JSR已成为Java界的一个重要标准。 JSR-303是JAVA EE 6 中的一项子规范,叫做Bean V原创 2020-05-14 16:00:12 · 561 阅读 · 0 评论 -
JDK8新特性 - 接口默认方法与静态方法、重复注解与类型注解
Java 8中允许接口中包含具有具体实现的方法,该方法称为默认方法,默认方法使用 default关键字修饰。 接口默认方法与静态方法 接口中的默认方法其实在一定程度上是违背了接口原本存在的意义。 一、默认方法 1、仅实现接口 // 接口 public interface MyInterface { // 默认方法 default String getName() { return "MyI...原创 2020-04-29 22:46:09 · 305 阅读 · 0 评论 -
JDK8新特性 - 新时间日期API
LocalDate、LocalTime、LocalDateTime LocalDate、LocalTime、LocalDateTime 类的实例是不可变的对象,分别表示使用ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息,也不包含与时区相关的信息。 注:ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示法 基本使用 @Te...原创 2020-04-29 20:03:54 · 223 阅读 · 0 评论 -
JDK8新特性 - Stream API及Optional类
Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。 Stream是什么 它是数据渠道,用于操作数据源(集...原创 2020-04-29 16:07:29 · 769 阅读 · 0 评论 -
JDK8新特性 - Lambda表达式、内置函数式接口、方法引用及构造器引用
Java8中引入了一个新的操作符->该操作符称为箭头操作符或 Lambda 操作符,箭头操作符将 Lambda 表达式拆分成两部分: 左侧:Lambda 表达式的参数列表 右侧:Lambda 表达式中所需执行的功能,即Lambda体。 Lambda是简化代码的一种方式,但其只能用在函数式接口。函数式接口就是接口中只有一个方法吗,可以使用注解@FunctionalInterface标注修饰。 ...原创 2020-04-29 01:23:59 · 570 阅读 · 0 评论 -
利用ThreadLocal本地线程进行共享数据
需求:当类与类之间没有任何关系,我们想要传输一些数据,在另外一个地方取出来,即共享数据,可以通过ThreadLocal来做。 一、代码示例: 1.首先需要创建一个ThreadLocal的工具类 /** * * @ClassName: ThreadLocalUtil * @Description: ThreadLocal工具类 * @author: 柳成荫 * @date...原创 2019-08-18 11:39:03 · 999 阅读 · 0 评论