自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Spring Cloud Eurek 介绍与实现

​​ Eureka 是 Netflix 开发的服务发现框架,本身是一个基于 REST 的服务,主要用于定位运行在 AWS 域中的中间层服务,以达到负载均衡和中佳能服务故障转移的目的。Spring Cloud 将他集成在其子项目 spring-cloud-netflix 中,以实现 Spring Cloud 的服务开发现 功能。​ CAP 原则又称 CAP 定理,指的是在一个分布式系统中,Consistency(数据一致性服务可用性分区容错性),三者不可兼得。

2024-04-22 11:41:48 627

原创 生产者消费者模型java简单实现

【代码】生产者消费者模型java简单实现。

2024-04-22 11:08:48 119

原创 线程池创建及运行流程

​ 相对前几个来说,该方法创建的线程池是较为特殊的一个线程池,该线程池的核心线程数为0,最大线程数为 Integer.MAX_VALUE=2147483647。这个线程池没有 核心线程数,并且该任务队列也不会存储任务队列,会直接判断线程数是否超过最大线程数,去创建新的该线程。最大线程数,在超出和弦线程池时,在工作队列已满的情况下,会创建额外的线程,这些线程的数量由求最大线程数确定。额外线程存留时间,当创建了超出核心线程数的线程,当这些线程执行完任务后,超出了这个时间,将会被回收。

2024-04-20 16:58:41 731 1

原创 Seata 介绍

官⽹地址:http://seata.io/,其中的⽂档、播客中提供了⼤量的使⽤说明、源码分析。XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接⼝,⼏乎所有主流的数据库都对 XA 规范提供了⽀持。XA 模式通过两阶段的提交实现。事务协调器通知各个分支事务执行本地事务;分支事务执行完后,不进行事务提交,继续持有数据库锁;由事务协调器判断最终事务是否要提交;

2024-04-20 16:37:12 387

原创 线程安全集合容器

当要对节点进行操作时,使用 synchronized 进行加锁,它的锁对象是通过 hash值与数组长度-1相与计算出的下标对应的节点处的对象,为链表的头节点或者是红黑树的根节点。我们还能看到,在 add() 方法里,添加新元素时,是将旧数组赋值,操作新数组,从操作完成之后,再将旧数组替换。顾名思义,将数组划分为若干个不同的”区域“,每个区域加不同的锁,来控制线程安全。在这段源码中看出,当节点为空时,不加锁,直接插入元素,这个插入操作调用了 casTabAt() 方法,遵循 CAS,实现无锁化的线程安全。

2024-02-27 19:31:26 325

原创 线程池创建,执行流程

​ 相对前几个来说,该方法创建的线程池是较为特殊的一个线程池,该线程池的核心线程数为0,最大线程数为 Integer.MAX_VALUE=2147483647。这个线程池没有 核心线程数,并且该任务队列也不会存储任务队列,会直接判断线程数是否超过最大线程数,去创建新的该线程。通过线程池,可以不用去频繁的开启和关闭线程。当有一个线程要开启时,通过线程池中的线程开启。这个线程运行完毕时,将线程归还给线程池,用于后来的线程使用。​ 我们可以看到,通过一个int类型的参数,设置了核心线程数和最大线程数。

2024-02-25 22:30:02 1655

原创 Java中线程的六种状态及转换

java中将线程的状态分为五种。

2024-02-22 18:55:54 383

原创 线程创建、实现和方法

通过 interrupt() 设置线程为中断状态,该方法是通过抛出 InterruptedException异常使线程中断,但是该线程要处于能感知该异常的状态时才会生效。启动线程,先要创建实现 Callable 接口的类,将该对象作为创建 Thread 时的参数,调用 start() 方法启动线程。当有线程调用 join() 方法时,join() 方法通过 wait() 实现,被查对的是主线程,主线程处于等待状态。启动线程时,构建重写 Thread类 的子类,调用 start() 方法启动线程。

2024-02-22 18:53:26 1124

原创 查找算法 二分查找

对于无序数组只能线性查找。

2024-02-20 08:52:40 295

原创 乱序算法排列数组

从最大下标开始,生成的随机数要小于当前下标,且不等于当前下标。(从大到小,为了更好地控制随机下标的生成)通过成成随机数,将当前下标与随机下标交换,达到打乱的目的。将一个有序数组打乱为无序数组。

2024-02-20 08:50:58 381

原创 Spring AOP实现及原理

/ 在方法执行前执行的逻辑");在实际项目中我们可能会存在配置了多个切面的情况。这种情况下我们很可能需要控制切面的顺序。​ 我们在默认情况下Spring有它自己的排序规则。(按照类名排序)​ 默认排序规则往往不符合我们的要求,我们需要进行特殊控制。​ 如果是注解方式配置的AOP可以在切面类上加**@Order注解来控制顺序。@Order中的属性越小优先级越高。**​ 如果是XML方式配置的AOP,可以通过调整配置顺序来控制。

2024-02-01 16:00:59 334

原创 Spring Bean 生命周期

Spring Bean 生命周期详解

2024-01-07 15:47:27 824

原创 Spring boot里发送带附件的邮件

导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> @Test void contextLoads2() throws MessagingException {

2021-10-19 16:25:27 369

原创 Swagger如何绑定实体类并在swagger-ui.html显示

只要controller接口中,返回值催在实体类,它就会被扫描到swagger //只要controller接口中,返回值催在实体类,它就会被扫描到swagger @PostMapping("user") public User user() { return new User(); }在实体类上注解@ApiModel@ApiModel("用户实体类")public class User {实体类信息上注解@ApiModelProperty来设置swag

2021-10-11 22:30:53 2978

原创 SpringBoot中如何开启Swagger

Swagger的一点笔记#所需的maven依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artif

2021-10-11 21:56:21 422

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除