<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[现在的我强的可怕]]></title><description><![CDATA[记录学习历程]]></description><link>https://blog.youkuaiyun.com/LG_971124</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LG_971124]]></copyright><item><title><![CDATA[【面试】java多线程]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/144377413</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/144377413</guid><author>LG_971124</author><pubDate>Tue, 10 Dec 2024 16:37:05 +0800</pubDate><description><![CDATA[CAS,compare and swap的缩写，中文翻译成比较并交换。它是乐观锁的一种体现，CAS 操作包含三个操作数 —— 内存位置（V）、预期原值（A）和新值(B)。如果内存位置的值与预期原值相匹配，那么处理器会自动将该位置值更新为新值。否则，处理器不做任何操作可重入锁是指允许同一个线程多次获取同一把锁，比如一个递归函数里有加锁操作自旋锁不是锁，而是一种状态，当一个线程尝试获取一把锁的时候，如果这个锁已经被占用了，该线程就处于等待状态，并间隔一段时间后再次尝试获取的状态，就叫自旋。]]></description><category></category></item><item><title><![CDATA[【面试】分布式锁专题]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/144377342</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/144377342</guid><author>LG_971124</author><pubDate>Tue, 10 Dec 2024 16:35:01 +0800</pubDate><description><![CDATA[分布式锁是一种在分布式系统环境下实现的锁机制，它主要用于解决，多个分布式节点之间对共享资源的互斥访问问题，确保在分布式系统中，即使存在有多个不同节点上的进程或线程，同一时刻也只有一个节点可以获得锁并对共享资源进行操作，从而维护数据的一致性和完整性。分布式锁的特点互斥性：同一时间只能一个节点获取到锁，其他节点需要等待获取到锁的节点释放了锁才可以获取到锁，而这里的等待一般是通过阻塞，和自旋两种方式安全性：解铃还须系铃人，只能释放自己的锁不能误删别人的锁。]]></description><category></category></item><item><title><![CDATA[【面试】java锁专题]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/144377121</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/144377121</guid><author>LG_971124</author><pubDate>Tue, 10 Dec 2024 16:29:56 +0800</pubDate><description><![CDATA[是否加锁分为乐观锁：通过新增一个字段版本号version，通过cas操作来实现锁的效果悲观锁：通过在sql语句后加for update共享锁：读锁，即可以查询同一条数据，不能写（lock in share mode）排它锁：写锁，不能写不能查行锁：锁住的是表的某一行或多行记录，只有锁住的数据不能访问，粒度小不容易冲突，加锁麻烦记录锁：锁的范围是表中的某一行记录，避免脏读问题。]]></description><category></category></item><item><title><![CDATA[【面试】Spirng的IOC启动流程]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/144376899</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/144376899</guid><author>LG_971124</author><pubDate>Tue, 10 Dec 2024 16:20:02 +0800</pubDate><description><![CDATA[通过HierarchicalBeanFactory 接口， Spring 的 IoC 容器可以建立父子层级关联的容器体系，子容器可以访问父容器中的 Bean，但父容器不能访问子容器的 Bean。Spring 使用父子容器实现了很多功能，比如在Spring MVC 中，展现层 Bean 位于一个子容器中，而业务层和持久层的 Bean 位于父容器中。该接口定义了访问容器中 Bean 基本信息的若干方法，如查看 Bean 的个数、获取某一类型 Bean的配置名、查看容器中是否包括某一 Bean 等方法；]]></description><category></category></item><item><title><![CDATA[Git基础操作快速入门]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/144376534</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/144376534</guid><author>LG_971124</author><pubDate>Tue, 10 Dec 2024 16:10:40 +0800</pubDate><description><![CDATA[Git是一个免费开源分布式版本控制工具，是由Linux的作者Linus开发的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具，从而Git诞生了目前使用Git作为版本控制的开源软件：Linux kernel，Android，jQuery，Ruby on Rails，github，码云Gitee等。]]></description><category></category></item><item><title><![CDATA[java中设计模式的使用（持续更新中）]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/143787328</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/143787328</guid><author>LG_971124</author><pubDate>Fri, 15 Nov 2024 10:12:41 +0800</pubDate><description><![CDATA[编写软件过程中，程序员面临着来自耦合性，内聚性以及可维护性，可扩展性，重用性，灵活性等多方面的挑战，设计模式是为了让程序（软件），具有更好的代码重用性（相同功能的代码，不用多次编写）可读性（编程规范性，便于其他程序员的阅读和理解）可扩展性（当需要增加新的功能时，非常的方便，也叫可维护性）可靠性（当我们增加新的功能后，对原来的功能没用影响）使程序呈现高内聚，低耦合的特性设计模式的七大原则：单一职责原则对类来说，及一个类应该只负责一项职责。如类A负责两个不同的职责：职责1，职责2。]]></description><category></category></item><item><title><![CDATA[微服务中常用分布式锁原理及执行流程]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/143506995</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/143506995</guid><author>LG_971124</author><pubDate>Tue, 05 Nov 2024 14:11:04 +0800</pubDate><description><![CDATA[分布式锁是一种在分布式系统环境下实现的锁机制，它主要用于解决，多个分布式节点之间对共享资源的互斥访问问题，确保在分布式系统中，即使存在有多个不同节点上的进程或线程，同一时刻也只有一个节点可以获得锁并对共享资源进行操作，从而维护数据的一致性和完整性。]]></description><category></category></item><item><title><![CDATA[Feign抽取公共模块与工作原理]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/143425148</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/143425148</guid><author>LG_971124</author><pubDate>Fri, 01 Nov 2024 10:18:24 +0800</pubDate><description><![CDATA[当多个模块都需要调用同一个服务下的接口时，可以将Feign接口抽取到公共模块，降低代码冗余和实现代码复用。]]></description><category></category></item><item><title><![CDATA[分布式事务-SpringBoot集成Seata]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/143424891</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/143424891</guid><author>LG_971124</author><pubDate>Fri, 01 Nov 2024 10:14:43 +0800</pubDate><description><![CDATA[如果消费者消息接受失败或返回ACK是失败，会进行重试，保证消息最终被消费。1.主业务方向发送一个“Prepared”准备消息到MQ，这个消息还未被确认，不会发生给消费者，然后MQ向生产者发送确认收到消息，然后主业务方执行自己的业务，并提交本地事务，成功后向MQ确认之前的“Prepared”消息发生给消费者，如果失败MQ将当前半消息删除，取消事务。事务协调者收到所有的事务参与者的canCmmit指令的反馈结果，这里有两种情况，一是所有的反馈都是yes，二是有部分的事 务参与者返回No，后者反馈超时。]]></description><category></category></item><item><title><![CDATA[SpringBoot自动装配原理与自定义starter]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/143390071</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/143390071</guid><author>LG_971124</author><pubDate>Thu, 31 Oct 2024 11:31:22 +0800</pubDate><description><![CDATA[Spring Boot 自动配置是 Spring Boot 框架的核心特性之一，它利用了条件注解和约定优于配置的原则来简化应用程序的开发过程。在SpringBoot中整合三方框架只需要导入其starter包，然后简单做一下yaml配置既可以使用，在Spring Boot应用启动时，框架会根据已存在的类路（classpath）中的依赖自动配置Bean并将其注入到Spring容器中。公司内部为了抽取一些基础的公共Jar包，把Jar包放在公司Maven仓库中，公司所有项目都可以依赖这个Jar包使用公共代码。]]></description><category></category></item><item><title><![CDATA[JSR303参数校验与全局异常处理]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/143363721</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/143363721</guid><author>LG_971124</author><pubDate>Thu, 31 Oct 2024 11:23:18 +0800</pubDate><description><![CDATA[Constraint(validatedBy = PhoneValidator.class)////此处指定了注解的实现类为ListNotHasNullValidatorImplString message() default "无效的手机格式";Class<?Class<?ConstraintValidator 是 Bean Validate 提供的 对象校验器的接口isValid : 该方法是用来做校验规则的方法，返回的boolean值代表是否校验通过@Service。]]></description><category></category></item><item><title><![CDATA[SpringBoot集成-RocketMQ快速入门]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/142652988</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/142652988</guid><author>LG_971124</author><pubDate>Mon, 30 Sep 2024 11:33:37 +0800</pubDate><description><![CDATA[MQ全称为Message Queue，即消息队列 ，是一种提供消息队列服务的中间件，也称为消息中间件，是一套提供了消息生 产、存储、消费全过程的软件系统，遵循FIFO原则。RocketMQ是一个统一消息引擎、一种提供消息队列服务的中间件，轻量级数据处理平台。RocketMQ是⼀款阿⾥巴巴开源的消息中间件，阿⾥巴巴向 Apache 软件基⾦会捐赠 RocketMQRockertMQ通过Offset来维护Consumer的消费进度，比如：消费者从哪个位置开始持续消费消息的？这里有三个枚举来指定从什么位置消费。]]></description><category></category></item><item><title><![CDATA[SpringCloud-Alibaba第二代微服务快速入门]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/142635909</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/142635909</guid><author>LG_971124</author><pubDate>Sun, 29 Sep 2024 15:18:17 +0800</pubDate><description><![CDATA[Spring Cloud Alibaba其实是阿里的微服务解决方案，是阿里巴巴结合自身微服务实践,开源的微服务全家桶，在Spring Cloud项目中孵化成为Spring Cloud的子项目。第一代的Spring Cloud标准中很多组件已经停更,如：Eureak,zuul等。所以Spring Cloud Alibaba很有可能成为Spring Cloud第二代的标准实现，所以许多组件在业界逐渐开始使用，已有很多成功案例。]]></description><category></category></item><item><title><![CDATA[SpringCloud-Netflix第一代微服务快速入门]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/142588229</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/142588229</guid><author>LG_971124</author><pubDate>Fri, 27 Sep 2024 10:54:22 +0800</pubDate><description><![CDATA[Eureka 是Netflix公司提供的服务注册与发现组件。微服务的其中一个特点是服务之间需要进行网络通信，服务器之间发起调用时调用服务得知道被调用服务的通信地址，试问当微服务数量成百上千之多，程序员该如何管理众多的服务通信地址，对于随时新增加的微服务和下线的微服务，又应该如何去动态添加和删除这些微服务的通信地址呢？所以手工管理服务的通信地址是一件遥不可及的事情，我们需要借助一个强大的工具帮我们实现这一功能 - Eureka，同类型的组件还有 zookeeper,consul等。]]></description><category></category></item><item><title><![CDATA[SpringBoot集成Redis及SpringCache缓存管理]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/142564610</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/142564610</guid><author>LG_971124</author><pubDate>Thu, 26 Sep 2024 16:56:08 +0800</pubDate><description><![CDATA[/ 注入Redis连接工厂@Resource/*** @Description: 自定义RedisTemplate对象注入Bean容器中**/@Bean// 1.创建一个RedisTemplate对象// 2.指定Redis连接工厂// 3.创建一个JSON格式序列化对象，此处使用的是Redis自己的的序列化器// 4.指定除开hash数据类型之外的数据key和value使用什么序列化器// 5.指定hash数据类型的key和value序列化器。]]></description><category></category></item><item><title><![CDATA[SpringBoot-全局处理异常，时间格式，跨域，拦截器，监听器]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/142563135</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/142563135</guid><author>LG_971124</author><pubDate>Thu, 26 Sep 2024 16:48:38 +0800</pubDate><description><![CDATA[SpringMVC 的拦截器主要用于拦截用户的请求并做相应的处理，通常应用在权限验证、判断登录等功能上第1步，定义拦截器：可以实现 HandlerInterceptor 接口来自定义拦截器，接口定义了三个方法，preHandler方法是在请求到达处理器之前执行，postHandler方法是在请求经过处理器之后、解析试图之前执行，afterCompletion方法是在视图渲染之后、返回客户端之前执行第2步，配置拦截器：在springmvc的配置文件xml中或配置类中，配置所有拦截路径，以及需要放行的路径。]]></description><category></category></item><item><title><![CDATA[Springboot集成MongoDb快速入门]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/142562316</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/142562316</guid><author>LG_971124</author><pubDate>Thu, 26 Sep 2024 16:29:28 +0800</pubDate><description><![CDATA[MongoDB是一个基于分布式文件存储 [1]  的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品，是非关系数据库当中功能最丰富，最像关系数据库的。它支持的数据结构非常松散，是类似json的bson格式（MongoDB存储的是BSON文档），因此可以存储比较复杂的数据类型。]]></description><category></category></item><item><title><![CDATA[mybatis-puls快速入门]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/142561372</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/142561372</guid><author>LG_971124</author><pubDate>Thu, 26 Sep 2024 16:19:59 +0800</pubDate><description><![CDATA[记录mybatis-puls学习]]></description><category></category></item><item><title><![CDATA[SpringBoot日志集成-LogBack]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/142561067</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/142561067</guid><author>LG_971124</author><pubDate>Thu, 26 Sep 2024 16:14:41 +0800</pubDate><description><![CDATA[记录springboot集成logback日志框架]]></description><category></category></item><item><title><![CDATA[SpringBoot框架快速入门]]></title><link>https://blog.youkuaiyun.com/LG_971124/article/details/142560704</link><guid>https://blog.youkuaiyun.com/LG_971124/article/details/142560704</guid><author>LG_971124</author><pubDate>Thu, 26 Sep 2024 16:10:07 +0800</pubDate><description><![CDATA[在入门案例中，我们引入了web依赖和test依赖，这两个依赖是SpringBoot中的starter依赖，starter依赖也被称为起步依赖SpringBoot 在配置上相比Spring要简单许多，其核心在于spring-boot-starter，在使用SpringBoot来搭建一个项目时，只需要引入官方提供的starter，就可以直接使用，免去了各种配置。starter简单来讲就是引入了一些相关依赖和一些初始化的配置Spring官方提供了很多starter，第三方也可以定义starter。]]></description><category></category></item></channel></rss>