自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试——Java基础知识

单例模式:某个类的实例在 多线程环境下只会被创建一次出来。单例模式有饿汉式单例模式、懒汉式单例模式和双检锁单例模式三种。线程安全,一开始就初始化。非线程安全,延迟初始化。线程安全,延迟初始化。

2024-10-20 16:09:43 945

原创 sql高级

事务隔离级别特点优点缺点读未提交(read uncommited)允许一个事务读取另一个事务尚未提交的数据最低的隔离级别,具有最高的并发性能。读取未提交的数据可以获得最新的数据状态。可能出现脏读,可重复读,幻读的问题读已提交(read commited)确保一个事务只能读取另一个事务已经提交的数据避免了脏读问题,只能读取到已提交的数据,较好地保证了数据的一致性。可能出现可重复读,幻读的问题并发性能受到一定影响,因为每次读取都需要等待其他事务的提交。

2024-10-18 10:25:46 1189

原创 双token无感刷新

双token校验解决了单token校验存在的问题,理由如下:1.假设access_token泄露,那么这个账号处于危险期的时间只有1min,因为1min后,access_token就会刷新2.假设refresh_token泄露,由于refresh_token只在刷新access_token时才会被使用到,在请求数据时用的是access_token,access_token校验都过不了,就不会有危险。(当然,如果access_token和refresh_token都泄露,那是彻底完蛋了)

2024-10-08 13:07:54 709

原创 定时任务。

每个字段可以是一个具体的值、一个连续区间、一个间隔时间、一个列表或通配符。表示2002-2006年的每个月的最后一个星期五上午10:15执行作。在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发。2002年至2005年的每月的最后一个星期五上午10:15触发。在每天下午2点到下午2:59期间的每1分钟触发。在每天下午2点到下午2:55期间的每5分钟触发。在每天下午2点到下午2:05期间的每1分钟触发。每年三月的星期三的下午2:10和2:44触发。每天上午10点,下午2点,4点。

2024-10-07 22:06:55 943

原创 统计本周的订单数,统计最近7天的订单数

它们都是用于执行日期的减法运算。具体来说,这两个函数都允许你从给定的日期或日期时间值中减去一个指定的时间间隔,然后返回一个新的日期或日期时间值。SUBDATE函数的具体用法与DATE_SUB非常接近,都允许你从给定的日期中减去指定的时间间隔。这个函数允许你根据需要,在日期或日期时间字段中减去年、月、日、小时、分钟或秒钟等时间单位。WEEKDAY(CURRENT_DATE())的值。用于获取当前字段的日期 2024-09-26。完整的一周(周一到周日)完整的一周(周日到周六)

2024-09-26 16:36:21 460

原创 Mock测试

假设ordersController里面的repetition接口尚未实现,然而其他接口的测试需要调用到这个接口,那么可以用MockBean来模拟这个接口的返回。这个MockBean注入后导致上面三个测试全部失效。

2024-09-25 17:24:39 354

原创 拦截器filter

前端的请求会经过网关(gateway),网关用的是netty服务器,会和web默认的tomcat服务器冲突,但是前端过来的请求也需要校验请求头是否携带了token,要怎么实现呢?:只需要在gateway校验token即可,校验通过后,各个微服务之间的相互调用就不需要校验token了。使用拦截器对请求进行拦截,查看请求头是否携带token。这就需要用到过滤器(filter)了。可以看到,拦截器引入了web的依赖。

2024-09-24 19:56:44 231

原创 拦截器Interceptor

这个方法在请求处理之后、视图渲染之前调用(Controller方法调用之后)。它主要用于对请求处理之后的模型和视图进行后处理(如果有的话)。这个方法在整个请求结束之后被调用,也就是在DispatcherServlet渲染了对应的视图执行完毕之后执行。表示流程中断,不会继续调用其他的拦截器(如果有的话),也不会调用目标Controller方法。这个方法在请求处理之前调用(Controller方法调用之前)。表示继续流程(调用下一个拦截器或走完所有要走的拦截器去执行控制器的方法);

2024-09-24 10:00:09 423

原创 Spring validation校验框架

(如下单和取消订单,取消订单需要校验取消订单的原因是否为空,而下单则不需要,但是方法中传的都是order这个实体类,因此区分校验组是必须的)是Spring的特有注解,支持验证组的概念,允许更灵活地指定在特定情况下应用哪些验证约束。注解来触发这些验证。创建一个ValidGroup继承Default接口,在里面写接口继承ValidGroup,一个接口即是一个校验组。这些注解可以应用于模型类的字段上,以定义字段的验证规则。实体类中的多个字段被赋予了校验规则,然而在不同的方法中,这些字段不一定是都需要被校验的。

2024-09-23 11:49:15 1256

原创 EasyExcel将数据库里面的数据生成excel文件

1.在model模块导入依赖。

2024-09-23 11:03:13 488

原创 vue3(整合版)

</style>App.vue<template>//引入Hello.vue</script><style>

2024-09-21 22:38:10 1616

原创 rabbitmq 短信验证码

新建一个springboot项目,引入web,redis,rabbitmq。

2024-09-20 17:38:04 538

原创 rabbitmq交换机

交换机的作用接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列在direct模型下队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey。

2024-09-20 14:56:08 1801

原创 rabbitmq入门(同步调用和异步调用,mq控制台,java代码使用rabbitmq入门)

综上,异步调用的优势包括耦合度更低性能更好业务拓展性强故障隔离,避免级联失败缓存消息,削峰填谷当然,异步通信也并非完美无缺,它存在下列缺点:完全依赖于Broker的可靠性、安全性和性能架构复杂,后期维护和调试麻烦。

2024-09-19 14:19:25 692 1

原创 docker创建rabbitmq容器

账号和密码都是guest。

2024-09-18 15:18:10 389

原创 SpringCloud Feign 以及 一个标准的微服务的制作

以一个咖啡小程序项目的为例,这个模块必将包括:各种实体类(pojo,dto,vo....)控制器 controller 服务类service......那么在项目开发和维护的过程中,如果一个模块里面的内容发生变动,相关的模块的业务也要修改,有种“牵一发而动全身”的感觉。(如订单模块修改了一个订单pojo里面的一个字段,那么用户模块用到这个订单pojo的所有业务也要同时修改,十分麻烦)于是乎,baoder_orders是项目的订单模块,它被拆成了三个部分:包含了订单模块要用的所有的实体类。

2024-09-17 20:53:33 1355 1

原创 Docker部署镜像 发布容器 容器网络互联 前端打包

这里我们把我们刚才创建的 /opt/nginx/html 文件夹 和 nginx容器下的 /usr/share/nginx/html文件夹绑定起来,这样我们就可以通过操作 /opt/nginx/html 里面的文件资源实现 nginx里面绑定的文件夹的同步更新。上面是用Dockerfile创建容器,用docker-compose.yml文件创建容器,会更加方便,从鲸鱼图标上的集装箱也可以看出来。发现同一个网络里面容器的ip是会变的,我们通过ping 容器名的优势就体现出来了,不需要每次记住容器的ip。

2024-09-17 12:29:00 816

原创 docker发布redis容器

【代码】docker发布redis容器。

2024-09-16 22:02:56 728

原创 SpringCloud gateway

由此案例,我们可以感受到gateway带给我们的方便。有了gateway,前端就只需要请求8080端口,以模块进行路径的书写,就能访问所有的后端接口了,同时gateway也解决了跨域的问题。

2024-09-11 15:58:47 1205

原创 SpringCloud Nacos

cart-service是一个购物车服务,item-service是一个商品服务,购物车符合会调用商品服务,由于商品服务会被频繁调用,为了面对高并发,对item-service进行了多实例部署。调用者可以从注册中心订阅想要的服务,获取服务对应的实例列表(1个服务可能多实例部署)当注册中心长时间收不到提供者的心跳时,会认为该实例宕机,将其从服务的实例列表中剔除。当服务有新实例启动时,会发送注册服务请求,其信息会被记录在注册中心的服务实例列表。服务启动时就会注册自己的服务信息(服务名、IP、端口)到注册中心。

2024-09-10 23:04:47 1251 1

原创 Jedis,SpringDataRedis

进行如上测试后,发现并没有修改key为name的值为lihua,而是出现了这样的结果原因如下RedisTemplate可以接收任意Object作为值写入Redis:只不过写入前会把Object序列化为字节形式,默认是采用JDK序列化,得到的结果是这样的:缺点:- 可读性差- 内存占用较大自定义序列化方式为json序列化首先写一个RedisTemplate的配置@Bean。

2024-09-10 18:54:04 954

原创 redis基本数据类型和常见命令

Redis是典型的key-value(键值型)数据库,key一般是字符串,而value包含很多不同的数据类型:Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网()可以查看到不同的命令:在redis客户端中,可以通过help @命令组名或help 命令名查看命令的用法本文首先将对redis的通用命令进行介绍,在讲解redis的5种基本数据类型(String,Hash,List,Set,SortedSet)中穿插介绍在redis中key的结构该如何设置。

2024-09-09 01:14:11 1186

原创 linux系统安装,启动redis

输入redis-server即可,但是这样就得一直把这个终端晾在这里,redis服务才能保持启动,把这个终端关闭redis服务就没了,这显然不是我们所期望的。方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(注意,如果redis正处于启动状态,请先杀死redis进程,否则如下指令会失效。该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。现在,我们可以用下面这组命令来控制redis服务的状态(至此,我们redis的安装和启动工作已经完成。执行下面的命令,可以让。

2024-09-08 17:32:17 1091

原创 Linux实用操作

环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。env命令即可查看当前系统中记录的环境变量环境变量是一种KeyValue型结构,即名称和值,如下图:HOME:/home,用户的HOME路径USER:root,当前的操作用户PWD:当前工作路径......我们知道使用的一系列命令其实本质上就是一个个的可执行程序。比如,cd命令的本体就是:/usr/bin/cd 这个程序文件。

2024-09-06 23:12:26 1306

原创 Docker打包自定义镜像

用idea打包镜像和创建容器需要这个东西支持下载安装包后执行,无脑回车即可。

2024-09-05 20:55:38 1025

原创 为虚拟机配置固定的IP地址(CentOS9)

首先关闭虚拟机打开虚拟网络编辑器选择更改配置选择VMnet8,选择子网的IP和掩码 (这里的子网掩码为255.255.255.0,表示前24位为网络号,后8位为主机号)然后点击DHCP设置设置开始IP地址和结束IP地址(设置好后我们的IP只能选择在192.168.168.128和192.168.168.254之间) 保存后退出。

2024-09-04 21:05:24 899

原创 Linux下安装Docker-ce ,配置nginx容器

高并发处理能力有限,资源利用率不高。Nginx最初是为Linux等Unix-like系统设计的,虽然在Windows上也有版本,但可能不是所有功能都能完美兼容Windows环境,因此可能会遇到一些特定的稳定性问题,如内存泄漏、崩溃等。与Linux系统相比,Windows上可能缺乏一些专门的Nginx管理工具或插件,使得管理和维护Nginx服务器变得更加复杂。Windows系统的权限管理机制与Linux不同,可能需要对Nginx的权限进行额外的配置和管理,以确保系统的安全性。

2024-09-04 19:33:41 1508

原创 windows中命令行界面连接虚拟机(CentOS9)

打开windows用户目录下的 .ssh文件夹 ,用记事本打开公钥文件,复制里面的内容进入虚拟机用户目录下的.ssh目录执行命令 vi authorized_keys ,将之前复制的公钥粘贴进去(打印一下执行完后的结果)

2024-09-04 10:09:52 644

原创 Linux虚拟机安装(CentOS9)

需要自己设置一下内存,处理器,以及镜像文件。设置完硬件后,启动虚拟机,开始配置操作系统。设置root账户的密码。全部完成后,重启虚拟机。

2024-09-03 17:17:10 737

原创 MD5加密和解密(用Hutool工具)

【代码】MD5加密和解密(用Hutool工具)

2024-09-03 12:48:12 3945

原创 /单元测试

承接上文。

2024-09-02 21:46:35 546

原创 统一异常处理,封装结果

抛出异常一定是请求失败的情况,需要异常状态码,异常信息。构造方法中需要有ResponseEnum,以便于我们手动抛出异常的时候可以指定它是什么类型的业务异常( 例:throw new BusinessException(ResponseEnum.INVALID_ACCOUNT);@Data//Data注解用于获取ResponseEnum@RestControllerAdvice (专门用于异常处理的一个aop)用@ExceptionHandler (异常的字节码文件)注解。

2024-09-02 20:37:15 506

原创 记录一下idea的一些使用技巧和遇到的异常(持续更新)

这样一来,每次创建新项目完就不用每次改配置了。

2024-08-31 17:35:34 521

原创 Linux——用户和权限

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。使用普通用户在根目录下创建文件夹切换到root用户后,继续尝试普通用户的权限,一般在其HOME目录内是不受限的。一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限。

2024-08-31 15:55:32 2315

原创 Linux基础命令

任何命令都支持:--help 选项, 可以通过这个选项,查看命令的帮助。如果想要查看命令的详细手册,可以通过man(manual, 手册)命令查看如下:帮助和手册都是全英文的,如果阅读吃力,可以通过重定向符输出到文件 然后通过翻译软件翻译内容查看

2024-08-30 20:52:32 788

原创 Linux环境准备(VMWare,finalshell,虚拟机快照)

我们可以通过创建快照的方式将当前虚拟机的状态保存下来,后续万一做了什么骚操作把虚拟机玩坏了,我们还可以通过快照回滚到之前正常的状态。(有点像git的版本回滚)

2024-08-30 10:24:16 283

原创 基于七牛云上传,下载文件

注:存储地区的选择基于你的用户的分布主要在哪里。 七牛云直接白送10GB给我们玩,很适合做项目想白嫖的小伙伴。Java SDK_SDK 下载_对象存储 - 七牛开发者中心(这里的代码仅供参考)2.yml文件中填入ak,sk和桶的相关配置3.写一个QiniuConfig来接收这些配置4.编写上传文件的核心代码为什么只有上传?因为这个桶是公有的,只需要上传时把返回的url存到数据库中,要下载文件时输入url即可下载。(最后介绍私有桶的上传和下载)服务类5.用knif

2024-08-29 23:53:37 713

原创 SpringBoot整合knife4j

在快速迭代的软件开发中,高效、直观的API文档至关重要。SpringBoot整合Knife4j,以自动化生成、美观展示及便捷调试为特点,为开发者提供了强大的API管理工具,极大地提升了团队协作效率与文档管理水平,是现代软件开发中不可或缺的一环。

2024-08-29 09:24:04 684

原创 一文搞定MybatisPlus

聚合和分组,无法使用lambda表达式完成,正如MP官网所说的,MybatisPlus只是对Mybatis进行增强,MP无法做到的事情我们还是要老老实实地回到mapper接口里面写sql。pwd是敏感数据,如果进行查询,返回的json数据中携带了pwd,这是很危险的,因此我们需要在查询中将pwd默认隐藏@Test默认的查询是查不出来pwd的@Test指定要查pwd,这样是可以查出来的。

2024-08-26 23:03:46 736

原创 SpringBoot整合Mybatis,Junit (复现之前写的一个SSM项目)

SpringBoot已经把Spring SpringMvc相关的事情都帮我们做好了,web相关,mybatis的起始依赖我们创项目的时候已经导入 ,我们只需要导入自己项目中额外添加的依赖。把mapper文件夹里面的所有mapper接口上面的@Repository注解换成@Mapper注解,@Mapper可以让SpringBoot扫描到它,并生成它的动态代理对象。如下是之前写的一个SSM项目(纯注解版),现在我们要把它改造成一个SpringBoot项目,以体现SpringBoot的方便。

2024-08-24 20:18:22 1091

空空如也

空空如也

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

TA关注的人

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