自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [Redis实战]分布式锁-redission

重入问题:重入问题就是指获得锁的线程可以再次进入到相同的锁的代码中,可重入锁的意义在于防止死锁。比如HashTable这样的代码中,他的方法都是使用synchronized修饰的,假如他在一个方法内,调用另一个方法,那么此时如果是不可重入的,不就死锁了吗?所以可重入锁他的主要意义是防止死锁,我们的synchronized和Lock锁都是可重入的。不可重试:是指目前的分布式只能尝试一次,我们认为合理的情况是:当线程在获得锁失败后,他应该再次尝试获得锁。超时释放。

2024-01-04 20:07:06 807

原创 [Redis实战]分布式锁

利用set nx ex 获取锁,并设置过期时间,保存线程标识释放锁时先判断标识是否与自己一致,一致则删除锁特性:利用set nx满足互斥性利用set ex保证故障时锁依然能释放,避免死锁,提高安全性利用Redis集群保证高可用和高并发特性。

2024-01-01 21:40:47 1343

原创 [Redis实战]优惠券秒杀

由于我们现在部署了多个tomcat,每个tomcat都有一个属于自己的jvm,那么假设在服务器A的tomcat内部有两个线程,这两个线程由于使用的是同一份代码,那么他们的锁对象是同一个,是可以实现互斥的,但是如果我们现在是服务器B的tomcat内部又有两个线程,但是他们的锁对象写的虽然和服务器A一样,但是锁对象却不是同一个,所以线程3和线程4可以实现互斥,但是却无法和线程1和线程2实现互斥,这就是集群环境,syn锁失效的原因,在这种情况下我们就需要使用分布式锁来解决这个问题。特价优惠券才需要填写这些信息。

2023-12-28 21:09:55 1007

原创 [Redis实战]商户查询缓存

缓存穿透产生的原因是什么?

2023-12-26 21:54:25 1035

原创 [Redis实战]短信登录

在这个方案中,确实可以使用对应路径的拦截,同时刷新登录token令牌的存活时间,但是现在这个拦截器他只是拦截需要被拦截的路径,假设当前用户访问了一些不需要拦截的路径,那么这个拦截器就不会生效,所以此时令牌刷新的动作实际上就不会执行,所以这个方案存在问题。

2023-12-19 20:57:37 844

原创 [Redis]基础入门

REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有

2023-12-05 21:39:11 393

原创 [Java]JUC并发编程

在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等。

2023-11-29 21:58:04 148

原创 [Java]线程详解

Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。

2023-11-25 20:57:56 133 1

原创 Apache POI简介

Apache POI项目的任务是创建和维护Java API,以基于Office Open XML标准(OOXML)和Microsoft的OLE 2复合文档格式(OLE2)处理各种文件格式。简而言之,您可以使用Java读写MS Excel文件。此外,您可以使用Java读写MS Word和MS PowerPoint文件。Apache POI是您的Java Excel解决方案(适用于Excel 97-2008)Apache POI项目是用于基于Microsoft的OLE 2复合文档格式开发文件格式的纯Ja

2023-11-22 22:13:53 940

原创 Apache ECharts简介

Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。 官网地址:https://echarts.apache.org/zh/index.html

2023-11-19 20:02:32 399

原创 WebSocket网络协议

WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。**HHTP协议和WebSocket协议对比**:* HTTP是短连接* WebSocket是长连接* HTTP通信是单向的,基于请求响应模式* WebSocket支持双向通信* HTTP和WebSocket底层都是TCP连接

2023-11-12 21:33:52 757 1

原创 Spring Task定时任务框架

Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。定位:定时任务框架作用:定时自动执行某段Java代码

2023-11-09 21:43:18 284 2

原创 HttpClient基本使用

HttpClient是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。当我们在使用扫码支付、查看地图、获取验证码、查看天气等功能时,其实应用程序本身并未实现这些功能,都是在应用程序里访问提供这些功能的服务,访问这些服务需要发送HTTP请求,并且接收响应数据,可通过HttpClient来实现。

2023-11-04 21:44:35 368 1

原创 nginx快速入门

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMA

2023-10-30 20:56:21 208

原创 软件开发介绍

作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程,以及软件开发过程中涉及到的岗位角色,角色的分工、职责,并了解软件开发中涉及到的三种软件环境。

2023-10-15 21:24:51 566

原创 Git分布式版本控制工具

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。Git 与 SVN 区别点:1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。3、Git 分支

2023-10-10 21:53:38 836 3

原创 Vue2详解

Vue是一套**构建用户界面**的**渐进式 框架****构建用户界面**:基于数据渲染出用户可以看到的界面**渐进式**:所谓渐进式就是循序渐进,不一定非得把Vue中所有的API都学完才能开发Vue,可以学一点开发一点* Vue的两种开发方式: 1. Vue核心包开发。场景:局部模块改造 2. Vue核心包&Vue插件&工程化

2023-10-02 21:01:12 2031 3

原创 [Java]JDK8新特性

* 速度更快* 代码更少(增加了新的语法:Lambda表达式)* 强大的Stream API* 便于并行* 最大化减少空指针异常:Optional* Nashorn引擎

2023-09-13 21:45:00 191

原创 [SSM]MyBatisPlus拓展

MybatisX是一款IDEA提供的插件,目的是为了我们简化Mybatis以及MybatisPlus框架而生。

2023-09-08 21:10:04 690

原创 [SSM]MyBatisPlus高级

* 主键的作用就是唯一标识,我们可以通过这个唯一标识来定位到这条数据。* 对于表数据中的主键,我们可以自己设计生成规则,生成主键。但是在更多的场景中,没有特殊要求的话,我们每次自己手动生成的比较麻烦,我们可以借助框架提供好的主键生成策略来生成主键,这样比较方便。* 在MybatisPlus中提供了一个注解,是@TableId,该注解提供了各种的主键生成策略,我们可以通过使用该注解来对于新增的数据指定主键生成的策略。那么在以后新增数据的时候,数据就会按照我们指定的主键生成策略来生成对应的主键。

2023-09-06 21:48:54 308

原创 [SSM]MyBatisPlus进阶

通过学习类的继承体系,我们知道,我们需要重点掌握QueryWrapper和LambdaQueryWrapper这两个类,在一般情况下,我们大多选择LambdaQueryWrapper,因为选择这种方式传递参数,不用担心拼写错误问题。

2023-09-04 21:56:56 330

原创 [SSM]MyBatisPlus基础

Mybatis(半自动)在持久层框架中是非常火的,一般项目都是基于ssm。虽然mybatis可以直接在xml或注解中通过SQL语句操作数据库,很是灵活。但是其操作都要通过SQL语句进行,就必须写大量的xml文件或者注解,很是麻烦。mybatis-plus(自动)就很好的解决了这个问题。Mybatis-Plus(简称MP)是 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网

2023-09-03 22:45:00 258

原创 [SpringBoot3]博客管理系统(源码放评论区了)

创建新的SpringBoot项目,综合运用以上知识点,做一个文章管理的后台应用。依赖:Spring WebLombokThymeleafMyBatis FrameworkMySQL DriverBean Validationhutool需求:文章管理工作,发布新文章,编辑文章,查看文章内容等

2023-09-02 22:15:00 692 2

原创 [SpringBoot3]视图技术Thymeleaf

* Thymeleaf是一个表现层的模板引擎,一般被使用在Web环境中,它可以处理HTML、XML、JS等文档,简单来说,它可以将JSP作为Java Web应用的表现层,有能力展示与处理数据。* 这样,同一个模板文件,既可以使用浏览器直接打开,也可以放到服务器中用来显示数据,并且样式之间基本上不会存在差异,因此界面设计人员与程序设计人员可以使用同一个模板文件,来查看静态与动态数据的效果。* Thymeleaf作为视图展示模型数据,用于和用户交互操作。JSP的代替技术。比较适合做管理系统,是一种易于学习、

2023-09-01 22:07:30 646

原创 [SpringBoot3]远程访问@HttpExchange

* 远程访问是开发的常用技术,一个应用能够访问其他应用的功能。SpringBoot提供了多种远程访问的技术。基于HTTP协议的远程访问是最广泛的。* SpringBoot中定义接口提供HTTP服务。生成的代理对象实现此接口,代理对象实现HTTP的远程访问,需要理解: * @HttpExchange * WebClient

2023-08-31 22:43:34 1426

原创 [SpringBoot3]Web服务

基于浏览器的B/S结构应用十分流行。SpringBoot非常适合Web应用开发,可以使用嵌入式Tomcat、Jetty、Undertow或Netty创建一个自包含的HTTP服务器。一个SpringBoot的Web应用能够自己独立运行,不依赖需要安装的Tomcat、Jetty等。SpringBoot可以创建两种类型的Web应用基于Servlet体系的Spring Web MVC应用使用spring-boot-starter-webflux模块来构建响应式,非阻塞的Web应用程序Spring WebFl

2023-08-22 22:02:59 1129

原创 [SpringBoot3]访问数据库

SpringBoot框架为SQL数据库提供了广泛的支持,既有用JdbcTemplate直接访问JDBC同时支持“object relational mapping”技术(如MyBtais、Hibernate)。SpringData独立的项目提供对多种关系型和非关系型数据库的访问支持,比如MySql、Oracle…SpringBoot也支持嵌入式数据库,比如H2、HSQL…这些数据库只需要提供jar包就能在内存中维护数据。

2023-08-14 21:45:18 360

原创 [SpringBoot3]基础篇

* SpringBoot是目前流行的微服务框架,倡导“约定优于配置”,其目的是用来简化新Spring应用的初始化搭建以及开发过程。* SpringBoot提供了很多核心的功能,比如自动化配置starter(启动器)简化Maven配置、内嵌Servlet容器、应用监控等功能,让我们可以快速构建企业级应用程序。* 特性: * 创建独立的Spring应用程序 * 嵌入式Tomcat、Jetty、Undertow容器(jar) * 提供的starters简化构建配置(简化依赖管理和版本控制) *

2023-08-12 22:29:38 999

原创 [Java]JDK17新特性

1.1Java Record1.1.1Record的使用1.1.2Instance Methods1.1.3静态方法 Static Method1.1.4Record构造方法1.1.5Record与Lombok1.1.6Record实现接口1.1.7Local Record1.1.8嵌套Record1.1.9instanceof判断Record类型1.1.10总结1.2Switch1.2.1箭头表达式1.2.2yield返回值1.2.3Java Rec

2023-08-08 22:52:40 2959 1

原创 [SSM]SpringMVC详解

SpringMVC优点基于MVC架构基于MVC架构,功能分工明确,解耦合。容易理解,上手快,使用简单SpringMVC是轻量级的,jar很小。不依赖特定的接口和类。作为Spring框架的一部分,能够使用Spring的IOC和AOP方便整合Strtus、MyBatis、Hiberate、JPA等其它框架。SpringMVC强化注解的使用在Controller、Service、Dao都可以使用注解,方便灵活。使用@Controller创建处理器对象,@Service创建业务对象,@

2023-08-02 16:55:17 294

原创 [SSM]Spring6整合JUnit5与集成MyBatis3.5

十七、Spring6整合JUnit517.1Spring对JUnit4的支持17.2Spring对JUnit5的支持十八、Spring6集成MyBatis3.518.1实现步骤18.2具体实现18.3spring配置文件的import

2023-07-31 22:15:00 227

原创 [SSM]Spring对事务的支持

十六、Spring对事务的支持16.1事务概述16.2引入事务场景16.3Spring对事务的支持Spring实现事务的两种方式Spring事务管理API声明式事务之注解实现方式事务属性事务的全注解式开发声明式事务之XML实现方式

2023-07-30 22:26:43 598

原创 [SSM]Spring面向切面编程AOP

十五、面向切面编程AOP15.1AOP介绍15.2AOP的七大术语15.3切点表达式15.4使用Spring的AOP15.4.1准备工作15.4.2基于AspectJ的AOP注解式开发15.4.3基于XML配置方式的AOP(了解)15.5AOP的实际案例:事务处理15.6AOP的实际案例:安全日志

2023-07-29 22:51:16 382

原创 [SSM]GoF之代理模式

十四、GoF之代理模式14.1对代理模式的理解14.2静态代理14.3动态代理14.3.1JDK动态代理14.3.2CGLIB动态代理

2023-07-28 22:17:34 611

原创 [SSM]Spring中的JdbcTemplate

十三、JdbcTemplate13.1环境准备13.2新增13.3修改13.4删除13.5查询13.6查询一个值13.7批量添加13.8批量修改13.9批量删除13.10使用回调函数13.11使用德鲁伊连接池

2023-07-26 22:06:46 331

原创 [SSM]Spring IoC注解式开发

十二、Spring IoC注解式开发12.1回顾注解12.1.1自定义注解12.1.2使用注解12.1.3通过反射机制读取注解12.2声明Bean的注解12.3Spring注解的使用12.4选择性实例化Bean12.5负责注入的注解[email protected]@Autowired与@[email protected]全注解式开发

2023-07-25 21:30:00 201 1

原创 [SSM]手写Spring框架

十一、手写Spring框架第一步:创建模块myspring第二步:准备好要管理的Bean第三步:准备myspring.xml配置文件第四步:核心接口实现第五步:实例化Bean第六步:给Bean属性赋值第七步:测试第八步:打包发布第十一步:使用myspring框架

2023-07-23 21:00:00 305

原创 [SSM]Spring的Bean对象

五、Bean的作用域5.1singleton5.2prototype5.3其它scope七、Bean的实例化方式7.1通过构造方法实例化7.2通过简单工厂模式实例化7.3通过factory-实例化7.4通过FactoryBean接口实例化7.5BeanFactory和FactoryBean的区别7.6注入自定义Date八、Bean的生命周期8.1Bean的生命周期之5步8.2Bean生命周期之7步8.3Bean生命周期之10步8.4Bean的作用域

2023-07-20 22:59:22 161

原创 [SSM]GoF之工厂模式

六、GoF之工厂模式6.1工厂模式的三种形态6.2简单工厂模式6.3工厂方法模式6.4抽象工厂模式(了解)

2023-07-18 22:33:30 606

原创 [SSM]Spring对IoC的实现

四、Spring对IoC的实现4.1IoC控制反转4.2依赖注入4.2.1set注入4.2.2构造注入4.3set注入专题4.3.1注入外部Bean4.3.2注入内部Bean4.3.3注入简单类型4.3.4级联属性赋值4.3.5注入数组4.3.6注入List、Set、Map集合4.3.7注入Properties4.3.8注入null和空字符串4.3.9注入的值中含有特殊符号4.4p命名空间注入4.5c命名空间注入4.6util命名空间

2023-07-17 22:15:00 301

MySQL期末复习资料

2023.4.22考试 数据库(MySQL)开发技术题库 选择+填空+简答

2023-04-22

空空如也

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

TA关注的人

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