自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何保证消息在MQ中不丢失(高频面试题)

(3)MQ中队列默认开启持久化,保证数据在传输过程中不丢失。还开启了惰性队列,存储在磁盘中,不存储在内存中,避免了断电过程中,消息丢失。消费者确认关系:消费者消费消息时候,如果消费成功,则会告诉MQ消费成功,则MQ会删除消息。(2)生产者确认关系:生产者给MQ发送消息,如果发送失败,会回调,会告诉失败的原因。解决方案:(1)生产者重连机制:当生产者在发送消息给MQ的时候,由于网络波动连接失败,连接失败时候会自动重连。1.生产者向队列发送消息过程中可能存在消息丢失。3.消息者在消费消息的时候可能丢失。

2025-10-14 08:59:50 230

原创 Redis常见缓存三大问题

3.缓存穿透:用户或者恶意访问者,构建了一个不存在的key,这个key在mysql中不存在,在redis中也不存在。大量请求直接在我们的mysql,会导致mysql的性能下降,导致宕机。1.缓存击穿,我们的redis中突然某一个key失效,过期时间到了,但是这个key上还有3000个请求,此时这3000个请求会到数据库上进行访问,此时会出现mysql的宕机。2.缓存雪崩,在redis中突然中多个的key失效,这些失效的key上请求量会直接到达数据库上,导致mysql的性能的下降。

2025-09-22 11:29:05 217

原创 DockerCompose语法探究

在使用DockerCompose之前,我们先讲解一下它的作用,DockerCompose帮助我们实现多个相互关联的容器快速部署,只需要配置一个docker-compose.yml来定义一组相互管理的的应用容器。depends_on:当前容器依赖哪个容器。例如jar包需要mysql 和redis,而nginx需要依赖后端的jar包。container_name:容器名。environment:环境,时区。volumes:数据卷,挂载到本地。networks:网络。built:自定义镜像。

2025-08-19 08:27:37 429

原创 快速搭建项目(若依)

RuoYi-Vue 是一个 Java EE 企业级快速开发平台,低代码的框架。3.运行项目:在后端IDEA进行启动。出现一下图标即可成功,,在官方文档里面可下载若依修改器,编辑相应的包名和域名。其中MySQL和Redis放在服务器上或者本机上。

2025-08-18 17:27:10 417

原创 Docker的相关知识探究详解

4.网络:因为各个容器是独立的环境,因此我们需要将容器与容器之间进行交互访问,因此引入网络,容器的网络IP其实是一个虚拟的IP,每个容器都有相应的IP地址,但是在Docker中各个IP地址的规范是连续的,假设一个容器被我们零时停用一下,那么它的地址可能被下一个容器给占领,不便于我们去管理和运行,因此我们引入自定义网络,通过命令和容器名进行交互。1.Docker:可以快速简化我们安装应用文件,Docker的安装方式不是直接安装文件的安装包,而是获取镜像,镜像里面包括文件的本身,还有环境配置以及系统的函数库。

2025-08-15 19:50:16 434

原创 Spring基础面试题(四)

请问controller中如何接收路径参数 , 比如: /emps/4,5,6,7 , 或 /emps/6,7,8?常用的约束有哪些,对应的关键字是什么,各自的应用场景?2. DQL语句分组查询时,where,group by,having之间的执行顺序是什么样的?默认升序,先是按照score降序排列,如果分数相同则按照age升序,如果score和年龄都相同,则按照更新时间降序排列。where是在分组之前进行条件过滤,而having则是在分组之后进行排列,只能够对聚会函数或者选中的字段进行筛选。

2025-08-15 08:32:10 498

原创 Spring基础面试题(三)

在类上定义一个@RestControllerAdvice的注解,声明这是一个全局异常处理器,其中@RestControllerAdvice = @ControllerAdvice + @ResponseBody,处理异常的方法返回值会转换为json后再响应给前端。项目开发中,你们的SQL是基于注解方式开发的还是XML映射配置文件开发的。2. 你们项目中的异常是如何处理的?2.Payload:载荷,存储的是自定义的数据,原始数据是Json。1.Header:存储的是令牌的类型,原始数据是Json。

2025-08-14 14:15:23 461

原创 Spring的高频基础面试题(二)

执行流程: 首先在提交任务的时候会先去判断核心线程能否执行,如果不能执行就要交给任务队列,此时需要判断任务队列是否满了,如果任务队列满了的话判断能否创建零时线程,如果不能够创建零时线程的话则执行拒绝策略。2. 请简单聊聊Mybatis中的 # 与 $ 的区别,以及Mybatis中的常见的动态SQL的标签<if> <foreach> <set> <where> 及其 作用 和应用场景?线程池执行任务的流程?环绕通知@Before 目标方法执行前执行,也可以在目标方法执行之后。<IF>做条件判断的。

2025-08-12 08:35:43 474

原创 Vue-Router三大组件详细探究

其中path=/指的是我们的根目录,而layout是我们定义了一个vue文件的名字,redirect是默认设置的路径地址,也可以理解我们的主页面,程序一启动就会跳转该页面,其中import的是二级路由,也会根据我们在前端点击相应的页面,我们在layout.vue文件里面设置相应的跳转地址,接下来我们详细介绍一下Router-view,在我们创建的Vue项目中,一般会在Router文件中创建一个index.js文件夹,在里面具体写的代码如图片所示,Vue中的路由主要讲解的是路径与组件的关系。

2025-08-11 19:33:00 253

原创 高频Spring面试基础题

RequestBody,是我们请求数据是Json,我们需要一个对象进行封装,而@ResponseBody是直接将Controller方法的返回值作为响应体直接传送给前端,并且如果返回值的类型是一个集合或者一个对象,他会自动做反序列转成Json格式的。声明bean对象的注解:@Compoent (自定义类的时候) @Controller(定在Controller层) @Service (定义在Service层次) @Mapper(定在Mapper接口上)

2025-08-11 08:42:19 419

原创 Spring的三层架构及其各个层用到注解详细解释。

2.Service层:进行业务逻辑的处理,通常在Service层上加一个@Service,声明Bean,额外可能需要用到了@Transational注解,用于开启事务,保证数据的一致性,同时一般在注解里面加一个rollbackFor = Exception.class,因为Transational默认的是RuntimeException异常。Url=/user?1.Controller层:接受请求,响应数据,@RequestController =@Controller+@RequestBody。

2025-08-10 15:51:06 344

原创 Mybatis和MybatisPlus的对比区分理解法

MybatisPlus,适用于简单的单表操作的增删查改,里面有很多的方法,只需要在Mapper层继承BaseMapper<E>,就可以实现单表的操作,包括他也有自己的单表操作Service层的方法,需要在Service接口上继承IService接口,并且在Service的实现类中继承IServiceImpl接口,然后在实体类需要注意的是字段名和属性名要符合一致,或者属性名是驼峰命名这样可以进行匹配。Xml的namespace需要和Mapper的全类名一致,SQL语句的ID要和Mapper接口的方法一致。

2025-08-10 14:57:50 320

原创 JAVA+AI简化开发操作

最后对于AI+大模型的展望,AI时代已经到来,现在生活随处可见AI,AI设计广告图片,AI自动化测试,便利了人们的生活,打破了传统的代码开发或者传统的计算机行业,在AI时代,我们一定要学习AI,这样可以在AI的空口,开垦出来自己的广袤无垠的土地。对于AI大模型,作为一个JAVA开发的初级工程,基于我自己片面实践操作中理解是他可以简化开发的步骤,可以省去大部分的体力输入代码的操作。操作一:可以根据我们在定义实体类中类中添加我们需要定义的属性既可以快速创建对象属性。

2025-08-10 14:31:52 325

原创 MySQL数据库和Redis数据库的区分对比理解法。

SQL数据库一般是和Redis数据库一起搭配使用的,服务区请求SQL数据先向Redis数据库中查询数据,如果Redis中没有数据,在向SQL数据库中进行相应的查询数据,并将查询的数据返回给Redis数据中,最后相应给前端。set :存放的是多个元素,且元素不可以重复是无序的,可类比JAVA的HASHSET。list :存放的是多个元素,元素可以重复是有序的,可类比JAVA的集合。Redis 数据库:是一种常见的高速缓存的数据库,是从内存中读取的数据,存放的是键值对,是一种非关系型数据库。

2025-08-10 12:09:18 416

原创 前端Web在Vue中的知识详解

第二种解决方案:可以指定请求的url地址的时候,不指定协议、IP、端口部分,只是指定资源的访问路径,并在前面加上 /api 前缀,标识这个请求是一个ajax请求,要请求服务器端,交给代理服务器进行操作:具体的可以在vue中的配置文件进行相关的server的port配置,这样就可以避免了浏览器的同源策略,实际是两个服务器的相互访问且是同协议,同域名,同端口地址。第一种解决方案:可以在需要被访问的服务器的请求类上添加上@CrossOrigin注解,但是不便于程序的维护和管理,一般不建议使用。

2025-08-09 20:20:38 294

原创 Spring 的原理探究

它采用了自动配置的原则,简化了开发,便于程序的维护,提高系统的稳定西。1. Spring中的Bean默认是单例的还是多例的?@Compoent : 定义在类上实例化bean,并把当前类对象的实现类交给spring容器进行管理,bean对象是类名的首字母小写。@Mapper : 定义在Mapper层接口,把mapper层的对象交给IOC容易,bean对象是类名的首字母小写。@Bean : bean是默认值是方法返回值,一般引入第三方插件的时候需要用到这个注解,bean对象是类名。

2025-08-09 19:21:31 877

原创 JavaWeb的AOP详解

可省略 : 权限修饰符 、 包名.类名、 异常声明 ------------> 包名.类名 不要省略,包名一旦省略他匹配的范围就越大,性能就会越低。------> 后 --------> 原始方法正常运行完才会运行, 出现异常不运行。----> 返回值 、包名、类名、方法、参数 ---> 还可以匹配方法的一部分。----> 后 -------> 原始方法正常运行完不运行, 出现异常时才运行。-----> 后 -------> 无论原始方法运行是否出现异常, 都会运行;AOP的常见五种的通知。

2025-08-08 18:20:09 2465

原创 Redis详解

5.Zset:为每个元素增加一个Score,从而使元素变的有序,zadd zrange zrevrange。五种类型:1.String类型;在项目开发中,为什么要用Redis,具体的应用场景?前端发起请求到服务端,服务端,先查询Redis,从Redis查询首页概览数据,如果有数据,就直接返回。如果Redis中没有首页概览数据,再查询MySQL数据库,从数据库中查询数据。Redis数据库是直接从内存中读取数据的数据库,比较高效和快速。再将MySQL查询的数据缓存到Redis数据库中。

2025-08-06 08:20:42 408

原创 线程池的概念和理解

在存放任务队列中需要判断当前任务队列是否已经满了,如果没满了,则放在任务队列中,如果满了,则需要是否创建零时线程,如果可以创建零时线程就创建。I:隔离性::多个用户并发的访问数据库时,一个用户的事务不能被其他用户的事务干扰,多个并发的事务之间要相互隔离。提交任务时:判断是否当前所有的核心线程数都被占用,如果有不被占用的优先使用核心线程数,否则就放入任务队列中。线程池的概念:线程池是为了减少我们在创建多个线程占用系统资源,从而提高线程的复用性的一个技术。C:一致性:事务开始前,保证数据的一致性。

2025-08-04 10:35:03 411

原创 线程常见面试题附上事务的四大特性ACID

启动线程必须是调用start方法,而不是run方法,如果调用run方法,只是将Thread看作一个普通的对象,调用它里面的方法,此时run方法中 的执行的代码会成为主线程的一部分。事务就是由一系列增删改数据操作,这些操作要么全部成功执行,要么全部不执行,以确保数据的一致性和完整性。2. 线程池创建的作用是什么?5.工作队列:如果执行的任务超过了处理的线程数量会把暂时无法处理的任务放入此队列;4.等待空闲时间的单位:设置空闲时间的单位(毫秒,小时)线程池的创建作用是:提高代码的复用性,节省系统的资源。

2025-08-04 10:25:00 403

原创 对于Web基础的知识点总结

MybatisPlus 中提供的条件构建器 QueryWrapper 与 LambdaQueryWrapper的区别是什么?条件构建器 QueryWrapper 与 LambdaQueryWrapper的区别是什么,QueryWrapper是将字段写死进行操作,而LambdaQueryWrapper,使用的是方法引用。拦截器中的 /* 与 /** 的区别是什么?@ServiceImpl :是Iservice的实现类,在我们定义Service实现类的必要时可以继承的ServiceImpl.

2025-08-03 10:56:27 461

原创 对于拦截器Interceptor和过滤器Filter 的区分和理解

a. 定义一个了类, 实现 HandleIntercetor ---------> 实现3个方法 (preHandle, postHandle, afterCompletion)a. 定义一个了类, 实现Filter ---------> 实现3个方法 (init, destroy, doFilter)e. 校验令牌, 令牌校验报错, 响应401状态码 (可以用到try catch语句捕获非法的token)b. 声明一个配置类 @Configuration --------> 注册拦截器 ("/**")

2025-07-31 20:28:52 247

原创 对于常见的管理系统用户登入的相关知识点1

(5)校验正确,使用工具栏对用户名和ID进行JWT编码(HASHMAP),生成对应的Token。JWT令牌分为三个部分:Header(头).PayLoad(载荷).Signature(签名)Header:原始数据是Json语言:声明JWT令牌的类型,基于Base64位编码。.PayLoad:原始数据是Json语言:是自定义数据的,基于Base64位编码。Signature:不是json,是一种加入签名的算法,防止令牌被篡改。3.JWT令牌技术(现在大多是企业都在使用的技术)(4)判断用户状态是否正确。

2025-07-31 20:12:03 171

原创 web面试题

2. 请描述Mybatis中动态SQL的使用场景 , 以及 <if> 标签 ,<where> 标签,<set>标签 的具体作用,和应用场景?全局异常处理器中是否可以定义多个方法来捕获不同类型的异常?当查询请求参数较多时,我们可以自定义一个对象进行封装,提高代码的复用性,不用在前面加注解@RequestBody.<where> 当where语句生效时,会自动去掉 if 条件语句为真的前面的AND或者OR。<set> 当Set语句的生效时,会自动去掉最后一个字段的逗号。内连接,连接的是两张表的交集。

2025-07-30 20:45:25 769

原创 在黑马项目实操第一步

RequestBody:Controller 中接收json格式的请求参数,通常会使用一个实体对象来接收,在方法形参加上一个注解 @RequestBody。RequestParam:当请求参数名字与形参名字不一样的时候可以使用的RequestParam进行标记里面写请求参数的名字,同时还可以为形参设置默认值.22.@RequestParam , @RequestBody , @PathVariable 注解的作用和应用场景?(从前端传递的参数 , 后端执行的SQL, 后端给前端返回的数据层面来说明)

2025-07-28 09:05:33 485

原创 基本的web面试题

在父工程中配置 <dependiencies> 与 <dependiencyManagement> 的区别是什么请详细描述?if 是条件判断语句, where后面的条件成立则执行if语句,同时删除被执行条件语句的前面or或者and,if后面的语句不生效则不执行if语句。项目开发中,你们的SQL是基于注解方式开发的还是XML映射配置文件开发的。,$是字符连接符,存在SQL注入问题,不建议使用,用的是字符串连接函数Concat();1. 动态SQL标签中的<if> <where>标签的作用是什么?

2025-07-27 08:33:17 3511

原创 我在黑马程序员学搭建环境

多人协作:Git支持多人协作,即一个团队共同开发一个项目,每个团队成员负责一部分代码,通过Git就可以管理和协调。远程备份:Git通过仓库管理文件,在Git中存在远程仓库,如果本地文件丢失还可以从远程仓库获取。4.git push origin(url简写名字) 分支名 将分支推送到远程仓库。版本切换:Git存在分支的概念,一个项目可以有多个分支(版本),可以任意切换。3 git remove将本地仓库的文件推送到远程仓库中。5.git pull: 从远程仓库下载到本地仓库。

2025-07-25 20:06:27 295

原创 在黑马程序员初学JAVA操作数据库

答:声明当前类是mybatis中的Mapper接口,其次程序运行时,框架会自动生成接口的实现类对象(代理对象),并给交Spring的IOC容器管理,@Select,@Insert,@Delete,@Update。项目开发中,你们的SQL是基于注解方式开发的还是XML映射配置文件开发的。同包同名的规则,其次在Resource中建立一个与Mapper接口中一样的一个包,并编写xml语句,动态SQL具体的应用场景?XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致。

2025-07-25 14:16:01 550

原创 我在JAVA学后端数据库

二、请详细描述字段声明 gender tinyint 与 gender tinyint unsigned 的区别?where group by having where在没有分组前进行条件过滤的,而having 是在分组后对聚合函数操作的。三、DQL语句分组查询时,where,group by,having之间的执行顺序是什么样的?where 与having的区别是什么?常用的约束有哪些,对应的关键字是什么,各自的应用场景?限制表中数据的输入,以确保数据的完整性、一致性和准确性。

2025-07-23 16:17:35 535

原创 我在黑马程序员学后端基础Spring

Controller接受了前端的数据请求,然后调用Service层,Service然后调用Dao层,Dao层读取数据,将读取的数据返回给Service层,Service层将数据的业务逻辑处理结果返回给Controller层,Controller层最后进行响应数据。2,三层架构之间存在依赖性(耦合),为了降低三层的依赖性,我们引入了分层解构的概念,分层解耦的主旨是降低耦合,或者是他们之间不在产生耦合。Controller:接受前端数据请求,对请求进行处理,并且响应数据。Service:进行业务逻辑的处理。

2025-07-21 19:43:44 302

原创 我在黑马程序员学前端

vue 初级阶段常用的指令 v-for 循环遍历 <span> v-if v-elseif v-else<span>. 判断语句。maven 分为两大类仓库 1是本地仓库 2是远程仓库。如:编译、测试、打包、安装、部署等。package:将编译后的文件打包,如:jar、war等。依赖的查找顺序:本地仓库、私服、远程仓库。clean:移除上一次构建生成的文件。install:安装项目到本地仓库。site:生成报告、发布站点等。坐标:是构件的唯一标识。clean:清理工作。

2025-07-21 08:31:46 325

原创 我在黑马程序员学web前端

html常见的标签:1、form 表单 input 输入框 select 下拉菜单 option 下拉列表 2、table 表格 thead 表头 tbody 是表体 tr 行  th 表头加粗  td 是列 br是换行。1 网页由三部分组成 1.、 html 负责网页的结构 2.css 、负责网页的美化 ,控制网页元素的样式 3、js,负责网页交互。2/CSS常见的三种引入方式 行内样式、内部样式、外部样式用link关键字。

2025-07-18 21:05:25 359

空空如也

空空如也

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

TA关注的人

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