自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

现在的我强的可怕

记录学习历程

  • 博客(31)
  • 收藏
  • 关注

原创 【面试】java多线程

CAS,compare and swap的缩写,中文翻译成比较并交换。它是乐观锁的一种体现,CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作可重入锁是指允许同一个线程多次获取同一把锁,比如一个递归函数里有加锁操作自旋锁不是锁,而是一种状态,当一个线程尝试获取一把锁的时候,如果这个锁已经被占用了,该线程就处于等待状态,并间隔一段时间后再次尝试获取的状态,就叫自旋。

2024-12-10 16:37:05 1187

原创 【面试】分布式锁专题

分布式锁是一种在分布式系统环境下实现的锁机制,它主要用于解决,多个分布式节点之间对共享资源的互斥访问问题,确保在分布式系统中,即使存在有多个不同节点上的进程或线程,同一时刻也只有一个节点可以获得锁并对共享资源进行操作,从而维护数据的一致性和完整性。分布式锁的特点互斥性:同一时间只能一个节点获取到锁,其他节点需要等待获取到锁的节点释放了锁才可以获取到锁,而这里的等待一般是通过阻塞,和自旋两种方式安全性:解铃还须系铃人,只能释放自己的锁不能误删别人的锁。

2024-12-10 16:35:01 751

原创 【面试】java锁专题

是否加锁分为乐观锁:通过新增一个字段版本号version,通过cas操作来实现锁的效果悲观锁:通过在sql语句后加for update共享锁:读锁,即可以查询同一条数据,不能写(lock in share mode)排它锁:写锁,不能写不能查行锁:锁住的是表的某一行或多行记录,只有锁住的数据不能访问,粒度小不容易冲突,加锁麻烦记录锁:锁的范围是表中的某一行记录,避免脏读问题。

2024-12-10 16:29:56 888

原创 【面试】Spirng的IOC启动流程

通过HierarchicalBeanFactory 接口, Spring 的 IoC 容器可以建立父子层级关联的容器体系,子容器可以访问父容器中的 Bean,但父容器不能访问子容器的 Bean。Spring 使用父子容器实现了很多功能,比如在Spring MVC 中,展现层 Bean 位于一个子容器中,而业务层和持久层的 Bean 位于父容器中。该接口定义了访问容器中 Bean 基本信息的若干方法,如查看 Bean 的个数、获取某一类型 Bean的配置名、查看容器中是否包括某一 Bean 等方法;

2024-12-10 16:20:02 794

原创 Git基础操作快速入门

Git是一个免费开源分布式版本控制工具,是由Linux的作者Linus开发的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了目前使用Git作为版本控制的开源软件:Linux kernel,Android,jQuery,Ruby on Rails,github,码云Gitee等。

2024-12-10 16:10:40 917

原创 java中设计模式的使用(持续更新中)

编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好的代码重用性(相同功能的代码,不用多次编写)可读性(编程规范性,便于其他程序员的阅读和理解)可扩展性(当需要增加新的功能时,非常的方便,也叫可维护性)可靠性(当我们增加新的功能后,对原来的功能没用影响)使程序呈现高内聚,低耦合的特性设计模式的七大原则:单一职责原则对类来说,及一个类应该只负责一项职责。如类A负责两个不同的职责:职责1,职责2。

2024-11-15 10:12:41 1057

原创 微服务中常用分布式锁原理及执行流程

分布式锁是一种在分布式系统环境下实现的锁机制,它主要用于解决,多个分布式节点之间对共享资源的互斥访问问题,确保在分布式系统中,即使存在有多个不同节点上的进程或线程,同一时刻也只有一个节点可以获得锁并对共享资源进行操作,从而维护数据的一致性和完整性。

2024-11-05 14:11:04 1317

原创 Feign抽取公共模块与工作原理

当多个模块都需要调用同一个服务下的接口时,可以将Feign接口抽取到公共模块,降低代码冗余和实现代码复用。

2024-11-01 10:18:24 461

原创 分布式事务-SpringBoot集成Seata

如果消费者消息接受失败或返回ACK是失败,会进行重试,保证消息最终被消费。1.主业务方向发送一个“Prepared”准备消息到MQ,这个消息还未被确认,不会发生给消费者,然后MQ向生产者发送确认收到消息,然后主业务方执行自己的业务,并提交本地事务,成功后向MQ确认之前的“Prepared”消息发生给消费者,如果失败MQ将当前半消息删除,取消事务。事务协调者收到所有的事务参与者的canCmmit指令的反馈结果,这里有两种情况,一是所有的反馈都是yes,二是有部分的事 务参与者返回No,后者反馈超时。

2024-11-01 10:14:43 1267

原创 SpringBoot自动装配原理与自定义starter

Spring Boot 自动配置是 Spring Boot 框架的核心特性之一,它利用了条件注解和约定优于配置的原则来简化应用程序的开发过程。在SpringBoot中整合三方框架只需要导入其starter包,然后简单做一下yaml配置既可以使用,在Spring Boot应用启动时,框架会根据已存在的类路(classpath)中的依赖自动配置Bean并将其注入到Spring容器中。公司内部为了抽取一些基础的公共Jar包,把Jar包放在公司Maven仓库中,公司所有项目都可以依赖这个Jar包使用公共代码。

2024-10-31 11:31:22 897

原创 JSR303参数校验与全局异常处理

Constraint(validatedBy = PhoneValidator.class)////此处指定了注解的实现类为ListNotHasNullValidatorImplString message() default "无效的手机格式";Class<?Class<?ConstraintValidator 是 Bean Validate 提供的 对象校验器的接口isValid : 该方法是用来做校验规则的方法,返回的boolean值代表是否校验通过@Service。

2024-10-31 11:23:18 1068

原创 SpringBoot集成-RocketMQ快速入门

MQ全称为Message Queue,即消息队列 ,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生 产、存储、消费全过程的软件系统,遵循FIFO原则。RocketMQ是一个统一消息引擎、一种提供消息队列服务的中间件,轻量级数据处理平台。RocketMQ是⼀款阿⾥巴巴开源的消息中间件,阿⾥巴巴向 Apache 软件基⾦会捐赠 RocketMQRockertMQ通过Offset来维护Consumer的消费进度,比如:消费者从哪个位置开始持续消费消息的?这里有三个枚举来指定从什么位置消费。

2024-09-30 11:33:37 1589

原创 SpringCloud-Alibaba第二代微服务快速入门

Spring Cloud Alibaba其实是阿里的微服务解决方案,是阿里巴巴结合自身微服务实践,开源的微服务全家桶,在Spring Cloud项目中孵化成为Spring Cloud的子项目。第一代的Spring Cloud标准中很多组件已经停更,如:Eureak,zuul等。所以Spring Cloud Alibaba很有可能成为Spring Cloud第二代的标准实现,所以许多组件在业界逐渐开始使用,已有很多成功案例。

2024-09-29 15:18:17 2310

原创 SpringCloud-Netflix第一代微服务快速入门

Eureka 是Netflix公司提供的服务注册与发现组件。微服务的其中一个特点是服务之间需要进行网络通信,服务器之间发起调用时调用服务得知道被调用服务的通信地址,试问当微服务数量成百上千之多,程序员该如何管理众多的服务通信地址,对于随时新增加的微服务和下线的微服务,又应该如何去动态添加和删除这些微服务的通信地址呢?所以手工管理服务的通信地址是一件遥不可及的事情,我们需要借助一个强大的工具帮我们实现这一功能 - Eureka,同类型的组件还有 zookeeper,consul等。

2024-09-27 10:54:22 1550

原创 SpringBoot集成Redis及SpringCache缓存管理

/ 注入Redis连接工厂@Resource/*** @Description: 自定义RedisTemplate对象注入Bean容器中**/@Bean// 1.创建一个RedisTemplate对象// 2.指定Redis连接工厂// 3.创建一个JSON格式序列化对象,此处使用的是Redis自己的的序列化器// 4.指定除开hash数据类型之外的数据key和value使用什么序列化器// 5.指定hash数据类型的key和value序列化器。

2024-09-26 16:56:08 1086

原创 SpringBoot-全局处理异常,时间格式,跨域,拦截器,监听器

SpringMVC 的拦截器主要用于拦截用户的请求并做相应的处理,通常应用在权限验证、判断登录等功能上第1步,定义拦截器:可以实现 HandlerInterceptor 接口来自定义拦截器,接口定义了三个方法,preHandler方法是在请求到达处理器之前执行,postHandler方法是在请求经过处理器之后、解析试图之前执行,afterCompletion方法是在视图渲染之后、返回客户端之前执行第2步,配置拦截器:在springmvc的配置文件xml中或配置类中,配置所有拦截路径,以及需要放行的路径。

2024-09-26 16:48:38 1123

原创 Springboot集成MongoDb快速入门

MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式(MongoDB存储的是BSON文档),因此可以存储比较复杂的数据类型。

2024-09-26 16:29:28 840

原创 mybatis-puls快速入门

记录mybatis-puls学习

2024-09-26 16:19:59 889

原创 SpringBoot日志集成-LogBack

记录springboot集成logback日志框架

2024-09-26 16:14:41 1043

原创 SpringBoot框架快速入门

在入门案例中,我们引入了web依赖和test依赖,这两个依赖是SpringBoot中的starter依赖,starter依赖也被称为起步依赖SpringBoot 在配置上相比Spring要简单许多,其核心在于spring-boot-starter,在使用SpringBoot来搭建一个项目时,只需要引入官方提供的starter,就可以直接使用,免去了各种配置。starter简单来讲就是引入了一些相关依赖和一些初始化的配置Spring官方提供了很多starter,第三方也可以定义starter。

2024-09-26 16:10:07 899

原创 SpringIOC&DI

IOC: Inversion Of Control,简称IOC,也被称为控制反转。对象的创建权由程序员主动创建转移到容器,由容器创建、管理对象,这种思想称为控制反转。这个容器称为IOC容器或Spring容器被IOC容器创建、管理的对象称为Bean对象IOC在上面图中对应的就是创建对象放入到容器中DI:Dependency Injection,简称DI,也被称为依赖注入。容器为应用程序提供运行时,所依赖的资源,称之为依赖注入。

2024-09-26 16:06:22 697

原创 Spring事务和AOP

记录spring事务以及AOP学习

2024-09-26 16:03:30 1051

原创 springboot集成MyBatis

记录mybatis学习

2024-09-26 15:59:05 1251

原创 Docker常用中间件安装

记录docker学习

2024-08-28 14:29:12 1100

原创 Docker快速入门

记录docker学习

2024-08-28 14:09:27 878

原创 Nuxt快速入门

记录前端框架nuxt学习笔记

2024-08-06 17:34:27 4639

原创 Maven快速入门

记录maven学习笔记

2024-08-05 17:59:53 632

原创 CSS快速入门

CSS学习笔记

2024-08-05 17:34:43 1573

原创 【pdfjs+vue】vue中实现pdf预览并且内容可复制,点击内容链接可页面跳转

使用pdfjs插件,在vue中实现pdf预览,内容可复制,点击内容链接可以实现页面跳转功能。

2024-07-12 11:41:11 829

原创 AngularJS快速入门

记录angularJS1.0学习笔记

2024-07-11 15:59:35 1826 1

原创 【Quarkus】云原生框架Quarkus快速上手

记录quarkus快速入门学习笔记

2024-07-08 17:20:27 3593 1

空空如也

空空如也

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

TA关注的人

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