- 博客(76)
- 收藏
- 关注
原创 Gradle
官话:Gradle 是一种先进的构建工具,它被广泛应用于 Android 开发。Gradle 提供了强大的构建功能、灵活的配置和丰富的插件生态。
2024-08-23 15:27:45
882
原创 Maven
官方话:Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和 依赖管理。构建就是以我们编写的 Java 代码、框架配置文件、国际化等其他资源文件、JSP 页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。构建过程的几个主要环节:①清理:删除以前的编译结果,为重新编译做好准备。②编译:将 Java 源程序编译为字节码文件。③测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
2024-08-23 14:55:59
816
原创 Kotlin MultiPlatform(KMP)
Kotlin Multiplatform 是一个工具,它让我们用同一种编程语言(Kotlin)写代码,这些代码可以同时在不同的设备上运行,比如手机、电脑和网页。这样做可以节省时间,因为你不需要为每种设备重复写相同的功能。
2024-07-11 18:32:28
833
1
原创 详析中间人问题
为啥呢,因为证书里面有个叫签名的玩意,这个签名是个哈希值,这个哈希值根据证书里面所有的内容生成的,一旦中间人把服务器的公钥换成自己仿造的公钥,这个签名就得跟着变,因为服务器的公钥也在签名里,然后这个签名是用来验证证书的真实性的,客户端有一个表,存着所有可信任的证书机构,这个签名一旦改变了,就跟客户端相应的证书机构对不上了,所以客户端就认为它不安全了。中间人就算真的修改了数据,也无法生成签名,因为签名是根据私钥来加密的,中间人拿不到私钥,因此如果真的生成了签名,客户端也无法拿到证书的公钥来验证这个假签名。
2024-03-19 16:18:54
995
原创 如何保存缓存和MySQL的双写一致呢?
这样即使有并发问题,也能最大限度的解决保存旧值的情况,因为是延迟之后删除的,所以即使是因为并发问题保存了旧值,但是延迟一段时间之后,旧值就会被删除,那么这样就自然而然的保证了数据库和缓存的最终一致性。前三种解决方案,有一个问题,也就是当第一次操作执行完成之后,第二步未执行的情况下,就会导致数据库和缓存不一致的问题,比如第一步执行完了,然后系统掉电了,那么一致性问题就会显现出来了。PS:如果这时候你更新缓存了,那么如果再有多线程并发的情况,这时候数据库已经是新值了,所以就不会再有缓存旧值的情况了。
2024-03-16 21:23:19
822
原创 动态代理详解(原理+代码+代码解析)
动态代理是一种在运行的时候动态的生成代理对象的技术。它在不改变原始类的情况下,对原始类的方法进行拦截或者增强。
2024-03-11 15:01:19
1778
原创 Redis(理论版)
Redis其实就是一个数据库,它是一个文档型数据库(非关系型数据库),而mysql是一个关系型数据库。它是一个开源的、基于内存的高性能键值存储数据库,支持多种数据结构,广泛用于缓存、消息队列、应用数据存储等场景,以其快速的读写性能和灵活性而著称。Redis是一个快速的存储工具,可以记住各种信息,像网站的临时数据,让网站运行得更快,也可以帮助应用程序高效地交换消息或保存数据。
2024-02-28 23:29:30
1279
原创 RabbitMQ
中间件可以理解为一个帮助不同软件、应用或系统之间交流和数据传输的工具或服务。就像一个翻译员在两个讲不同语言的人之间传递信息,让他们能够互相理解和沟通。中间件位于客户端(比如你的电脑或手机应用)和服务器(存放数据和运行服务的强大计算机)之间,确保数据顺利传输,同时还可以提供额外的功能,比如安全性、数据管理和消息服务等。简单来说,中间件是一种软件服务,用于连接不同的应用程序和系统,帮助它们更好地工作和交流,无论它们是在同一个地方还是分布在全球不同的位置。这就像是建立在不同软件组件之间的桥梁,确保信息能够顺畅、
2024-02-18 23:50:59
1399
2
原创 MyBatis-Plus
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2024-02-14 15:39:14
1017
原创 Seata
简介:XA 模式通过两个阶段来保证分布式事务的一致性。第一阶段是准备阶段,所有参与者都准备提交事务并锁定资源;第二阶段是根据第一阶段的结果来提交或回滚事务。例子:想象你和朋友们一起在多个餐厅订了一次大聚餐。首先(第一阶段),你给每家餐厅打电话确认能否接待大团队,并要求他们暂时保留位置。然后(第二阶段),一旦所有餐厅都确认可以,你就确认所有预订;如果有任何一家餐厅不能接待,你就取消所有预订。是XA的升级版简介:AT 模式通过记录数据的前后状态来实现事务。
2024-02-07 16:14:19
993
原创 Sentinel
流量控制是指对系统中的流量进行限制和请求,以确保在承受能力范围内正常运行Sentinel 熔断是指在分布式系统中,为了防止系统雪崩,当某个微服务的错误率或响应时间超过预设的阈值时,自动停止对该服务的调用的机制。Sentinel 是阿里巴巴开源的面向分布式服务架构的高可用性保障组件,主要功能包括流量控制、熔断降级和系统负载保护等。在微服务架构中,服务间的依赖错综复杂,任何一个服务的不稳定或失败都可能引起连锁反应,导致整个系统的不可用。
2024-02-05 18:15:28
2230
原创 SpringCloud LoadBalancer
LoadBalancer(负载均衡器)是一种网络设备或软件机制,用于分发传入的网络流量负载请求到多个后端目标服务器上,从而实现系统资源的均衡利用和提高系统的可用性和性能。负载均衡器(LoadBalancer)就像是一位交通指挥官,它的工作是管理到达一个网站或应用的所有网络流量。想象一下,如果很多人同时访问同一个网站,就像是一群车辆同时开进一个十字路口。如果没有交通指挥,路口就会变得非常拥堵,车辆难以通行。
2024-01-29 00:40:31
4291
原创 OpenFeign
1.自定义超时重试类(实现Retyrer接口,并且重写continueOrPropagate方法)/***自定义超时重传类*///最大尝试次数//超时间隔次数//当前尝试次数//这里只配置了三个变量,还有别的变量呢,可以自行配置@Overridethrow e;System.out.println(LocalDateTime.now()+" | 执行一次重试"+interval);
2024-01-29 00:38:15
1431
原创 Nacos(先解释专属名词,然后大白话讲解+安装配置教程+代码实例)
Nacos是Dyamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos致力于帮助我们发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助我们快速实现动态服务发现,服务配置,服务元数据及流量管理。Nacos帮助我们更敏捷和容易的构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构。
2024-01-28 17:49:52
1814
原创 简单介绍----微服务和Spring Cloud
SpringCloud是一个用于构建分布式系统和微服务架构的开发工具的集合。它基于Spring Framework,为开发人员提供了一套简化分布式系统开发的解决方案。SpringCloud提供了一系列的组件和库,用于实现分布式系统的常见模式和功能,包括服务注册与发现、负载均衡、断路器、配置管理、消息总线、分布式追踪、网关等等。它简化了在构建分布式系统时所需的开发工作,并提供了一致而可靠的开发模式。
2024-01-27 19:55:39
1618
原创 Spring事务
比如近几年比较严重的新冠病毒,我们会把直接接触到确证病例的⼈员隔离到酒店,而把间接接触者(和直接接触着但未确诊的人)隔离在自己的家中,也就是针对不同的人群,采取不同的隔离级别,这种隔离方式就和事务的隔离级别类似,都是采取某种行动让某个事件变的“更可控”。而事务的隔离级别就是为了防止,其他的事务影响当前事务执行的⼀种策略。(嵌套事务可以认为是存档,在当前大事务的一个环节的基础上,再出来一个小事务,这个小的事务在此环节继续执行,如果成功就成功了,不成功也不影响大事务接下来的执行,相当于游戏的存档)
2023-10-25 16:11:14
192
1
原创 AOP
AOP(Aspect Oriented Programming):面向切面编程,它是⼀种思想,。AOP 是⼀种思想,而 Spring AOP 是⼀个框架,提供了⼀种对 AOP 思想的实现,它们的关系和IoC 与 DI 类似。比如没学AOP之前,有一个项目,这个项目有8个页面,这个项目的每一个页面进去之前都需要判断用户是否登录验证是否登录就可以归类为。
2023-10-06 11:48:02
247
1
原创 MyBatis
MyBatis ()是⼀款优秀的持久层,它支持自定义 SQL、存储过程以及高级映射。MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。它是一个ORM(对象关系映射框架–通过操作程序中的类和对象,来间接的操作数据库中的表和字段)
2023-10-05 21:31:39
195
1
原创 SpringMVC
MVC 是 Model View Controller 的缩写,它是软件工程中的⼀种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之⼀,它是用来注册接口的路由映射的。路由映射:所谓的路由映射指的是,当用户访问⼀个 url 时,将用户的请求对应到程序中某个类的某个方法的过程就叫路由映射@RequestMapping 即可修饰类,也可以修饰方法,当修饰类和方法时,访问的地址是类 + 方法。// 获取参数。
2023-10-04 18:03:37
364
2
原创 SpringBoot
开发者自定义打印日志的实现步骤:1.在程序中得到日志对象。2.使用日志对象的相关语法输出要打印的内容接下来我们分别来看。Spring Boot 是为了快速开发 Spring 而诞生的,Spring Boot 具备:1.快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。2.内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。3.快速部署项目,无需外部容器即可启动并运行项目。
2023-10-03 12:58:50
173
1
原创 Bean 作用域和生命周期
限定程序中变量的可用范围叫做作用域,或者说在源代码中定义变量的某个区域就叫做作用域。而 Bean 的作用域是指 Bean 在 Spring 整个框架中的某种行为模式,比如 singleton 单例作用域,就表示 Bean 在整个 Spring 中只有⼀份,它是全局共享的,那么当其他人修改了这个值之后,那么另⼀个人读取到的就是被修改的值。
2023-10-02 13:01:36
436
2
原创 Spring更简单的读取和存储对象
经过前面的学习,我们已经可以实现基本的 Spring 读取和存储对象的操作了,但在操作的过程中我们发现读取和存储对象并没有想象中的那么“简单”,所以接下来我们要学习更加简单的操作 Bean 对象的方法。在 Spring 中想要,也就是我们接下来要学习 Spring 中的相关注解,来存储和读取 Bean 对象。
2023-10-01 09:56:16
109
1
原创 Spring的创建和使用
Spring 就是⼀个包含了众多⼯具⽅法的 IoC 容器。既然是容器那么它就具备两个最基本的功能:将对象存储到容器(Spring)中;从容器中将对象取出来。在 Java 语⾔中对象也叫做 Bean,所以后⾯咱们再遇到对象就以 Bean 著称。严格的来说Bean就是能被多次使用的对象。
2023-09-30 09:07:26
169
原创 Spring基础与核心概念
容器是⽤来容纳某种物品的(基本)装置。——来⾃:百度百科我们想想,之前课程我们接触的容器有哪些?List/Map -> 数据存储容器Tomcat -> Web 容器比如一个web,光有一个web的话是运行不起来的,你得需要把这个web放到toncat这个web容器上,才能运行起来Spring 也是⼀个容器,Spring 是什么容器呢?Spring 是⼀个 IoC 容器什么是 IoC?
2023-09-29 10:38:09
151
1
原创 JVM
JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。常见的虚拟机:JVM、VMwave、Virtual Box。VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器;JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进行了裁剪。JVM 是一台被定制过的现实当中不存在的计算机。
2023-09-24 12:43:49
179
1
原创 数据库JDBC编程
JDBC是干啥的呢?简单来说就是用java代码操作数据库各种数据库,在开发的时候,就会提供一组编程接口(API)简单来说就是有个软件,这个软件给你一些功能,你基于这些功能能对这个软件干啥API往往是以 函数,类 的形式来提供的,说白了就是这个API在这个程序里面就是一组函数,只不过这组函数不是你自己实现的,而是人家那个程序提供给你的,你基于这些API,可以对这个程序进行各种操作。
2023-09-21 19:03:19
114
原创 JS的WebAPI
API 是一个更广义的概念. 而 WebAPI 是一个更具体的概念, 特指 DOM+BOM,所谓的 API 本质上就是一些现成的函数/对象, 让程序猿拿来就用, 方便开发.DOM 全称为 Document Object Model.W3C 标准给我们提供了一系列的函数, 让我们可以操作:网页内容网页结构网页样式。
2023-09-19 00:01:59
258
1
原创 Java Script
如果一个变量没有被初始化过, 结果就是 undefined, 是 undefined 类型var a;undefined 和字符串进行相加, 结果进行字符串拼接undefined 和数字进行相加, 结果为 NaN+=-=*=/=自增自减运算符++: 自增1–: 自减1比较运算符<=!=(会进行隐式类型转换)==比较相等(会进行隐式类型转换)比较相等(不会进行隐式类型转换)!(不会进行隐式类型转换)逻辑运算符。
2023-09-18 21:03:36
279
1
原创 Servlet
Servlet是Tomcat给咱们提供的一组api,操作HTTP的Servlet并非是咱们自己写一个独立的程序,而是写一个代码片段,把这段代码插入到Tomcat中如何使用Servlet,在java中使用Servlet,先从一个helloworld着手,注意接下来将要见到咱们整个学习生涯中最复杂的helloworld,需要经历7个步骤,这些步骤对于初学者来说很不友好,但是这些步骤都是固定的操作,都是一个套路,刚开始会非常的不适应,类似于JDBC编程,但是你下去多敲几次代码就熟悉了!!!!
2023-09-17 22:01:56
241
1
原创 HTML
HTML是超文本标记语言,电脑上看到的所有网站都是html实现的HTML代码是“标签”构成的,简单来说,html就是一堆标签的组合形如 中大部分标签成对出现. 为开始标签, 为结束标签.少数标签只有开始标签, 称为 “单标签”.开始标签和结束标签之间, 写的是标签的内容. (hello)开始标签中可能会带有 “属性”. id 属性相当于给这个标签设置了一个唯一的标识符(身份证号码).
2023-09-17 18:51:58
741
1
原创 Tomcat
HTTP是前后端交互的桥梁前端:浏览器后端:HTTP服务器HTTP服务器本质上就是一个TCP服务器,HTTP是基于TCP的,这个服务器按照HTTP协议的约定,解析请求,构造响应。那么我们能不能自己写一个HTTP服务器呢?完全可以!但是以后我们在公司的时候,没必要自己现成写一个HTTP服务器,而是有现成的服务器供我们使用,在java圈子中最知名的HTTP服务器就是Tomcat,是apache社区开源的服务器。
2023-09-12 18:29:11
450
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人