自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySql简述

可重复读:如果一个事务成功执行并添加修改新数据,这些数据对其他正在执行的事务是不可见的。A事务修改x数据,B事务也正在读x数据,A修改完成新数据结束,对于正在执行的B事务来说也是不可见的,B事务只能看到最初的x数据。mysql的数据结构,使用的事B+树。因为普通的树都是两个分支,会导致树的深度加大,而b+数就解决了这个问题,它是一个多分支树。B+树的数据都存储在叶子结点中,分支结点均为索引,方便扫库,只需要扫一遍叶子结点即可。数据跟索引放在一起的叫做聚簇索引,数据跟索引没有放在一起的叫做非聚簇索引。

2025-06-10 23:22:53 67

原创 K8s简述

各个工作节点上的Kubelet(读库布利特)定期从API Server获取需要运行的Pod清单,调用容器运行时接口(如Docker)创建和启动容器实例。它主要功能包括:弹性伸缩(Autoscaling)、服务发现(KubeDnS/CoreDNS)、配置中心(configMap/Secret)、服务网关(ingress Controller)、负载均衡(Load Balancer)、服务安全(RBAC API)、跟踪监控(Metrics API/Dashboard)Docker:根据镜像运行容器实例。

2025-06-10 23:01:00 667

原创 Docker简述

Docker含有几个主要组件。首先,Docker客户端,只需要向 Docker 服务器或者守护进程发出指令,例如Docker run指令。然后就是,Host 主机(也叫docker引擎):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。Docker 镜像就是一个 Linux 的文件系统(Root FileSystem),通过镜像启动一个容器,一个镜像就是一个可执行的包,其中包括运行应用程序所需要的所有内容:包含代码,运行时间,库,环境变量和配置文件等。托管容器的软件称为Docker引擎。

2025-06-09 23:30:35 345

原创 分布式系统简述

接收到反馈之后,执行第三阶段,提交事务,也就是运行事务,如果失败直接回滚,最终参与返回提交结果。通俗的理解,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构成的系统成为分布式系统,同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,这些服务器可能放在不同的机柜中,也可以在不同机房中,甚至分布在不同城市。主备模式,搭建一个主节点和一个从节点,主节点负责读写请求,从节点负责读请求和同步主节点。一致性的话,外部所有节点访问该系统的时候,不管请求系统的哪些节点返回的都是同一份数据。

2025-06-09 23:12:13 276

原创 内存泄露排查流程

如果只需要一个变量作为局部变量,在方法结束就不使用它了,但是把他设置为实例变量,此时如果该类的实例对象生命周期很长也会导致该变量无法回收发生内存泄漏(因为实例对象引用了它)变量作用域设置的不合理会导致内存泄漏。如果将对象存入散列表后,修改了该对象的关键域,就会改变对象哈希值,导致后续要在散列表中删除该对象,会找错索引从而找不到该对象导致删除失败(极小概率找得到)如果使用的是WeakHashMap,它内部的Entry是弱引用,当它的Key不再使用时,下次垃圾回收就会回收掉,不会发生内存泄漏。

2024-05-04 14:45:16 2316

原创 内存泄露排查流程

jvisualvm 并按 Enter 键启动。排查jvm内存分配情况(内存分配合理)排查是否存在异常未清除类。虚拟机堆转储快照分析工具。一、创建内存泄露案例。排查发现出现内容泄露。

2024-03-28 23:11:11 507

原创 二、Jooq整合SpringBoot

对于我们经常用到的就是 Bean dslContext 和 jooqConfiguration ,大部分自动配置的Bean都会使用 @ConditionalOnMissingBean 注解, 此注解标识在没有某个Bean的情况下,才会执行该注解所标注的配置。Spring Boot最大的一个特性就是有很多 AutoConfiguration 自动配置, spring-boot-starter-jooq 依赖于 spring-boot-starter-jdbc, 其自动配置了数据源,事务管理器等。

2024-03-13 21:24:03 739 2

原创 一、Jooq-简单使用

此接口再使用关系型数据库时,主要用于定义数据库表记录,储存的内容是一条表记录的字段和值,每个值会储存对应字段的类型,可以通过通用的 getValue(Field field) 方法,取到对应字段的值,也可以将这个接口看做是一条记录的字段/值映射。生成的Java代码字段类型是根据数据库映射成的Java类型,在进行设置和查询操作时,因为是Java代码,都会有强类型校验,所以对于数据的输入,是天然安全的,极大的减少了SQL注入的风险。通过jOOQ提供的API,配合生成的Java代码,可以很方便的进行数据库操作。

2024-03-13 20:18:47 1214

原创 DDD领域驱动设计-视频讲解+实战

DDD 领域驱动设计,当软件越来越复杂,实际开发中,大量的业务逻辑堆积在一个巨型类中的例子屡见不鲜,代码的复用性和扩展性无法得到保证。为了解决这样的问题,DDD提出了清晰的分层架构和领域对象的概念,让面向对象的分析和设计进入了一个新的阶段,对企业级软件开发起到了巨大的推动作用。

2022-11-07 20:32:10 2661

原创 getWriter() has already been called for this response

报错信息:getWriter() has already been called for this response。原有是getWriter和getOutputStream不能同时使用。改成使用其中一个就行。

2022-09-09 14:44:23 875

原创 单元测试汇总

单元测试

2022-07-14 10:11:48 792

原创 error:ajc:Internal AspectJ compiler error

error:ajc:Internal AspectJ compiler error

2022-06-30 17:13:47 863

转载 tomcat源代码导入

class Solution { public void nextPermutation(int[] nums) { if (nums.length == 1 || nums.length == 0){ return; } int left = nums.length-2; while (nums[left] >= nums[left+1]){ left--; .

2022-02-26 10:23:51 338

原创 排序问题排查Comparison method violates its general contract!

通过List.sort对元素进行排序,测试阶段没发现,在st测试的时候报了这个错误。“Comparison method violates its general contract!”。具体堆栈信息:看起来没什么问题,但是却报了一个错,“比较方法违反其一般合同”。在 JDK7 版本以上,Comparator 要满足自反性,传递性,对称性,不然 Arrays.sort,Collections.sort会报 IllegalArgumentException 异常。自反性:当 两个相同的元素.

2021-10-23 00:06:10 7183

转载 详解Spring的ImportSelector接口

详解Spring的ImportSelector接口(2) - 简书写在最前 上篇文章 - 详解Spring的ImportSelector接口(1) http://www.jianshu.com/p/aa99a303bc37中,我们最后留下了...https://www.jianshu.com/p/23d4e853b15b

2021-09-20 20:45:02 378

原创 springboot启动报错consider defining a bean of type ‘*.*.**‘ in your configuration.

图是网上找的,因为解决之后,没法复原案发现场如果你很确认这个bean确实是删掉了,没有出现在项目里,可以在clean一下项目,我这次问题也是出在这

2021-09-18 15:27:21 926

原创 架构师进阶之路——3、Spring MVC 源码深度剖析(二)

目录一、SpringMVC处理请求源码分析1、前端控制器 DispatcherServlet 继承结构2、SpringMVC处理请求流程3、核心方法深度剖析1)getHandler方法剖析2)getHandlerAdapter方法剖析3)ha.handle方法剖析4)processDispatchResult方法剖析一、SpringMVC处理请求源码分析1、前端控制器 DispatcherServlet 继承结构2、SpringMVC处理请求流程1).

2021-06-14 12:33:11 239

原创 架构师进阶之路——3、Spring MVC-处理流程、拦截器(一)

一、背景MVC 体系结构:表现层 、业务层、持久层,MVC属于表现层架构。MVC 全名是 Model View Controller,是 模型(model)-视图(view)-控制器(controller) 的缩写, 是一种用于设计创建 Web 应用程序表现层的模式。MVC 中每个部分各司其职: Model(模型):模型包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务。View(视图): 通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。通常视图是依据

2021-06-13 21:34:26 300

原创 架构师进阶之路——2、Spring进阶-Spring AOP、事务(五)

一、背景AOP本质:在不改变原有业务逻辑的情况下增强横切逻辑,横切逻辑代码往往是权限校验代码、日志代 码、事务控制代码、性能监控代码。二、AOP 相关术语 名词 解释 Joinpoint(连 接点) 它指的是那些可以用于把增强代码加入到业务主线中的点,那么由上图中我们可 以看出,这些点指的就是方法。在方法执行的前后通过动态代理技术加入增强的 代码。在Spring框架AOP思想的技术实现中,也只支持方法类型的连接点。

2021-06-05 19:22:07 320 2

原创 架构师进阶之路——2、Spring进阶-IOC循环依赖问题(四)

一、什么是循环依赖循环依赖其实就是循环引用,也就是两个或者两个以上的 Bean 互相持有对方,最终形成闭环。比如A 依赖于B,B依赖于C,C又依赖于A。注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。Spring中循环依赖场景有: 构造器的循环依赖(构造器注入)Field 属性的循环依赖(set注入)其中,构造器的循环依赖问题无法解决,只能拋出 BeanCurrentlyInCreationException 异常,在解决属性循

2021-06-03 22:02:52 160

原创 架构师进阶之路——2、Spring进阶-BeanFactory& Bean创建流程(三)

目录一、BeanFactory创建流程1.获取BeanFactory子流程2、BeanDefinition加载解析及注册子流程二、 Bean创建流程一、BeanFactory创建流程1.获取BeanFactory子流程时序图如下2、BeanDefinition加载解析及注册子流程2.1该子流程涉及到如下几个关键步骤Resource定位:指对BeanDefinition的资源定位过程。通俗讲就是找到定义Javabean信息的XML文 件,并将其封装成Resou.

2021-06-03 21:33:29 889 6

原创 架构师进阶之路——2、Spring进阶-IOC&BeanFactory&ApplicationContext&FactoryBean&后置处理器(二)

一、 Spring IoC基础二、BeanFactory与ApplicationContext区别

2021-05-31 22:18:02 397 7

原创 架构师进阶之路——2、Spring进阶-核心结构&思想(一)

一、背景Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC 和 AOP 为内核,提供了展现层 Spring MVC 和业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,已 经成为使用最多的 Java EE 企业应用开源框架。Spring 官方网址:我们经常说的 Spring 其实指的是Spring Framework(spring 框架)。...

2021-05-30 17:07:46 407 1

原创 Mac中FinalShell的使用

下载地址:http://www.hostbuf.com具体操作:https://jingyan.baidu.com/article/2f9b480d797c3a01cb6cc2b7.html

2021-05-26 00:20:51 3074

原创 架构师进阶之路——1、持久化框架(二)

目录一、Mybatis源码剖析1、传统方式源码剖析1)初始化2)执行SQL流程3)executor4)、StatementHandler2、 Mapper代理方式一、Mybatis源码剖析1、传统方式源码剖析1)初始化Inputstream inputstream = Resources.getResourceAsStream("mybatis-config.xml");//这一行代码正是初始化工作的开始。SqlSessionFactory fac..

2021-05-16 21:53:05 311 1

原创 架构师进阶之路——1、持久化框架(一)

一、背景对于开发过几年的老程序员来说,mybatis框架都是众所周知的,但是有没有想过,或者想清楚为什么会出现mybatis框架。下面是最初的jdbc开发模式public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null;

2021-05-16 20:16:27 1965 5

原创 设计模式以及在业务场景的实践

目录前言设计模式的类型设计模式的六大原则设计模式的特点业务中落地房源上房处理链业务-责任链模式自动追价优惠活动策略处理器业务-策略模式日志工厂对象处理业务-单例模式多种场景打印封装日志业务-抽象工厂模式结语参考文献前言在软件领域中,最先诞生的是软件模式,软件模式(Software Patterns)是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件开发生

2021-02-28 10:46:58 1322

原创 HttpUtils请求工具类

HttpUtils请求import java.io.IOException;import java.io.UnsupportedEncodingException;import java.net.URISyntaxException;import java.util.ArrayList;import java.util.Map;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactor

2021-01-28 20:06:09 433

原创 Intellij IDEA取消access can be private提示

开发过程中,因为一些不必要的warn,导致我们往往以为所有的warn都是没有问题的,麻木的结果最终只会导致大隐患的出现。所以需要对于这种不需要提示的问题隐藏掉

2020-12-15 17:08:09 1548

原创 postman传递二进制文件 Current request is not a multipart request

post请求中通过postman传递二进制文件出错报错信息Current request is not a multipart request主要原因在于对postman的使用不会,二进制请求不是在binary传递过去的在请求就没问题了^_^

2020-11-26 21:24:21 3034 1

原创 postman全局参数配置

背景:按照最苦逼的方式进行请求,需要不断的频繁修改参数,及其繁琐。另外一个原因,在需求开发过程中,涉及到多个请求,这样的话需要对请求进行分类管理,方便后续的使用。一、请求分类管理新建Collections填写分组信息选中分组,右击鼠标,创建子分组选择请求的url,点击保存->选择你要保存的分组二、全局变量配置将一些常量配置成全局变量。点击“眼睛”图标->add(第一次进行点击add,以后点击edit)-> 保存

2020-10-14 11:30:25 4074

原创 idea调出services管理多个服务

第一步:第二步:第三步:第四步完成:在启动系统就ok了

2020-09-11 20:36:39 800

原创 comparator接口和Comparable接口比较

目录一、comparator接口1、list的比较2、数组的比较二、Comparable接口Java提供了一个用于比较的接口Comparator和Comparable接口,提供了一个比较的方法,所有实现该接口的类,都动态的实现了该比较方法。一、comparator接口1、list的比较如果要使用list的sort方法需要实现一个Comparator接口,自定义比较方式 public static void main(String[] args) { Li

2020-06-02 12:51:58 454

原创 详细分析Java8中default关键字

目录一、简介二、出现的理由三、例子三、解决冲突一、简介default关键字:与public、private等都属于修饰符关键字,与其他两个不同之处在于default关键字大部分都应用于接口。二、出现的理由总所周知在使用接口的时候,很多人都会遇到一个很尴尬的事情,在实现某个接口的时候,需要实现该接口所有的方法。这个时候default关键字就派上用场了。通过default关键字定义的方法,集成该接口的方法不需要去实现该方法。三、例子创建一个person类, 使用de.

2020-06-01 23:16:11 10689 2

原创 idea导入项目出现乱码

导入外部项目出现乱码问题,文件本身也是utf-8这个时候首先你得在文件夹里面单独打开看一下你的文件是否本身就是乱码那就说明是idea配置问题上面也有描述,说utf-8加载出错点击乱码恢复但是一个个文件改的话太麻烦了,可以直接去setting里面修改把整个项目都选择为gbk就可以了不过我个人建议注解还是啥的都可以直接使用英文,不仅可以提高英...

2020-05-01 17:12:51 6006 1

原创 mac基本操作和关闭安全模和任务监控器

创建文件夹mkdir dirname删除一个目录 rmdir dirname mvdir移动或重命名一个目录 mvdir dir1 dir2 cd改变当前目录 cd dirname pwd显示当前目录的路路径名 pwd ls显示当前目录的内容 ls -la dircmp比较两个目录的内容 dircmp dir1 dir2切换用户 sudo -iMac进行一些操作时...

2020-04-20 16:46:01 5428

原创 IDEA的详细使用(上)

一、IDEA的安装二、IDEA的使用1、快捷栏的选择2、查看IDEA破解时间3、项目结构隐藏IDEA的项目配置文件4、运行项目​5、IDEA快捷键的使用6、创建代码提示模板7、修改页面模板8、设置类注释模板​9、创建maven项目10、聚合工程11、maven项目打包12、非maven项目打包三、SVN的使用...

2020-04-19 17:09:38 29310

原创 Spring的深入浅出--17.Spring的事务管理详细分析

spring的事务管理主要有:-spring事务管理的一组API-spring的编程式事务管理-spring的声明式事务管理什么是事务?事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败spring接口介绍Spring事务管理高层抽象主要包括3个接口PlatformTransactionManager 平台事务管理器TransactionDef...

2020-02-22 16:07:25 265

原创 RESTFUL API开发常用接口以及spring boot开发常用操作

目录io.spring.platform和org.springframework.cloudcommonsjava -jar 文件名REST成熟等级controller层中常用注解@RequestParam@PageableDefault@PathVariable@JsonView@RequestBody前后端分离中Date的使用校验注解@...

2020-01-07 17:39:38 2101

原创 前后端分离历史追溯及如今流行的前后端分离接口实现

博客对应视频讲解地址:https://www.bilibili.com/video/av81735277/一、模板引擎时代1、jsp本质:jsp是服务器响应页面、jsp是嵌入java代码的html、jsp的本质就是servlet缺点:前端开发人员必须会后端,后端开发人员必须会前端。导致大批全栈工程师的出现2. FreeMarker2. FreeMarkerFreeM...

2020-01-01 15:43:41 1337 2

空空如也

空空如也

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

TA关注的人

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