自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Selenium报错ValueError: Timeout value connect was <object object ...>, but it must be an int, float or

出现该问题的原因就是selenium、webdriver-manager、urllib3的版本不兼容导致的,很多课程并没说有urllib3的问题,这里可以自行deepseek一下urrllib3是什么。浏览器驱动(ChromeDriver)未能正确启动,或网络连接问题导致超时配置异常。在设置网络超时参数时,收到了一个无效的值(比如对象而不是数字)。为什么会出现Timeout错误?为什么会出现Timeout错误?的版本不匹配,导致参数传递错误。同样也可能有urllib3的问题。

2025-03-26 12:11:36 297

原创 Charles连接手机

安装了Charles,下载地址。

2025-03-07 23:57:04 246

原创 测试理论基础

8.可维护性:现异常恢复简单、可扩展功能、升级更新便捷(比如代码有注释,容易查出问题在解决)回归:对已经修复的Bug或者更新后的已测内容再次测试(新功能有关联的旧功能也要测)5.安全(专项):敏感信息无泄密存储有保障(数据传输、数据存储)集成测试:功能模块组装(模块之间功能交互)【测试人员】白盒:例:在登录功能的后端代码直接做测试(单元测试)灰盒:例:通过登录接口,输入参数做测试(集成测试)系统测试:整个系统(功能、非功能)【测试人员】黑盒:例:在登录界面做登录测试(系统测试)

2025-02-10 21:26:10 770

原创 redis缓存应用

缓存是一种用于临时存储数据的技术,数据交换的缓冲区,一般读写性能较高作用:提高读写效率,降低响应时间成本:数据一致性成本、代码维护成本、运维成本重复数据请求当相同的数据被多次请求时,可以将结果缓存起来,避免重复计算或查询数据库。例如:Web 应用中,频繁访问的数据库查询结果可以缓存到内存中。2.缓存更新策略(三种)用户请求的数据在缓存和数据库中都不存在,不断发起这样的请求会给数据库带来压力就是统一时间段大量的缓存key同时失效或者redis服务宕机了,导致大量请求到达数据库,带来巨大压力。

2025-02-09 20:40:05 392

原创 Springboot整合Redis客户端

使用Spring默认提供的StringRedisTemplate,他的key value序列化默认就是String方式,省去自定义RedisTemplate的过程。

2025-02-04 11:50:54 374

原创 Linux常用命令2

命令组成【命令本身 可选选项 参数】显示当前文件所在目录。

2025-02-03 20:57:35 211

原创 java多线程学习笔记

应用软件种互相独立的,可以同时运行的功能,就形成了多线程例子:360杀毒软件中,有木马查杀、电脑清理、系统修复、优化加速等可以同时运行的功能场景:1.拷贝迁移大文件的时候,多线程可以运行其他功能2.加载大量资源文件,例如打开游戏时,加载资源文件,加载这些的同时,检查游戏版本,播放背景音乐前两种无法获取多线程运行的结果,由于重写的run方法是void,没有返回值,第三种有返回值。

2025-01-28 12:12:52 1497

原创 RabbitMQ前置概念

5672:编程语言客户端连接端口15672:web管理界面端口25672:集群端口。

2025-01-15 09:48:05 719

原创 Jsoup实现实时爬取

获取Html文档,然后解析出需要的字段。

2025-01-14 22:07:20 196

原创 hutool-http实现离线爬虫

从调试的结果可以看出,虽然转换成了map集合,但各自原有的类型依然存在,我们强转之后就能调用该类型的方法。有一些数据还是数组,通过toList装成List集合后就可以通过该方法转成 Json字符串。通过该工具类将json数据转换成map对象。我们使用mybatis-plus的批量插入。这里返回的是json格式的字符串。1.分析数据源(怎么获取)2.拿到数据后怎么处理。

2025-01-11 18:44:59 719

原创 docker安装rabbitmq

【代码】docker安装rabbitmq。

2025-01-08 12:29:36 215

原创 Elasticsearch JavaRestClient版

从这里可以看出,创建索引有四步,其余只有三步// 2.准备requestSearchRequest request = new SearchRequest("索引库名");// 3.组织DSL参数// 4.发送请求,得到结果// 5.解析响应结果// 5.1获取总条数// 5.2获取文档数组并且遍历//获取文档数据源//反序列化。

2025-01-02 20:48:44 627

原创 Elasticsearch DSL版

只有创建、修改需要请求体只有创建、修改需要请求体查询语法有4个顶级属性分别是query、sort、from/size、highlight。

2025-01-02 15:17:42 613

原创 Elasticsearch操作笔记版

我们重点学习使用Java High Level REST Client(">Java高级REST客户端</font>最后需要反序列化就是循环添加多次 IndexRequest(请看创建文档部分)">解析结果</font>代码解析。

2025-01-02 15:06:43 1339

原创 Elasticsearch名词解释

一个开源的分布式搜索引擎,通过Restful方式进行交互的近实时搜索平台框架,可以用来实现搜索、日志统计、分析、系统监控等功能,是以elasticsearch为核心的技术栈,包括(beats,(L)Logstash)数据抓取,((K)kibana)数据可视化,((E)elasticsearch)存储、计算、搜索数据java语言的搜索引擎类库,提供了搜索引擎的核心API,elasticsearch就是基于Lucene开发的每一条数据就是文档,相当于mysql中的一条记录,但是ES中的文档是json格式。

2024-12-29 23:47:54 1011

原创 总结一下本次使用docker部署遇到的问题

1.文件上传建议不要直接存储到本地,可以用云存储服,之所以这次放在本地,是觉着方便点,项目部署异常麻烦,安全性也不高,要是服务器挂了,网站可以重新部署,但是数据可能就全丢失了,听说minio是开源免费的,可以去学习一下,或者大厂OSS。解决:我采用目录挂载的方式不就行了,因为nginx采用了目录挂载的方式,挂载到宿主机,那我把java容器存储图片的位置挂载到nginx目录挂载的位置,就能访问到了。通过查看日志发现,代理转发到的后端找不到,因为配置了统一的网桥,所以用容器名做指向,不要写错了。

2024-12-28 02:15:35 369

原创 docker项目部署流程(Vue+Spingboot)

2.使用存储库安装apt2.安装nginx并运行注:nginx.conf配置文件指定的前端目录所在位置要与容器内的位置相对于,不要直接写相对于宿主机的位置,否则服务器访问不到之所以做数据挂载就是防止容器出现问题挂掉,那么数据也随之消失,挂载到宿主机,即使容器挂掉,在创建新容器也能保持原有的数据注意:实际开发环境中3306端口不对外暴露,容器内自定义网络互相访问一份 jdk.tar.gz 包一份自己的 java项目jar 包一份编写好的 Dockerfile 文件Dockerfile注意:16

2024-12-27 02:43:03 1279

原创 Docker常用命令

24.docker network connect 自定义的网络名 容器名【指定容器加入某个网络】4.docker save -o 镜像名.tar 镜像名 【保存镜像到本地压缩包】7.docker ps 【查看容器状态:默认查看已启动的容器】-a查看所有的容器。17.docker volume inspect 数据卷名【查看指定数据卷详情】23.docker network inspect 网络名【查看网络详情】8.docker logs 镜像名【查看日志】-f 持续查看。

2024-12-24 21:45:34 434

原创 Docker安装与使用

一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁**问题:**有一些镜像docker是没有的,那么我们需要自己去制作镜像,例如java应用,每一个java应用都不一样,所以我们需要自己定义自己java项目的镜像解决的问题:默认方式下的网桥,要是A服务停止后,B服务开启就会占用A的ip,A再次开启就会分配其他ip,那么其他引用A服务的服务需要更改A服务现用的ip那么我们使用自定义网络,通过容器名就可以互相访问,不需要知道对方的ip。

2024-12-24 21:12:45 993

原创 Mybatis-Plus快速入门

/ 调用 selectPage 方法。logic-delete-field: isDelete # 全局逻辑删除字段名。// 假设要进行分页查询,每页显示10条记录,查询第1页,查询条件为 age > 25。logic-not-delete-value: 0 # 逻辑未删除值。logic-delete-value: 1 # 逻辑已删除值。// 根据 columnMap 条件,删除记录。// 根据 entity 条件,删除记录。// 删除(根据ID 批量删除)// 根据 ID 删除。//3.获取分页数据。

2024-12-22 20:15:44 808

原创 后端接受前端传递数组进行批量删除

问题描述:当我们需要做批量删除功能的时候,我们循环单次删除的接口也能进行批量删除,但要删除100条数据就要调用100次接口,或者执行100次sql,这样系统开销是比较大的,那么我们直接采用接收的数组格式数据+sql语句的多条件in(1,2,3)就只需要执行一次sql理由:由于前端传递ids:[1,2]格式的数据,那么到了后端就会变成这样ids[]=1&ids[]=2,所以用路径参数这里选用的的element-plus的val,要把里面的id值拿出来以数组传递到后端这里的idss就是valIds传递的数据后端

2024-12-13 13:09:57 411

原创 vue3+vite部署nginx注意事项

这个是nginx里自带的配置在里面添加这行,那么跳转到的二级路由就不会报错,因为nginx只有访问自己端口(默认80)的一级路由生效。# 转发请求到后端,这里是自定义,前端vite配置的代理打包之后是不生效的,nginx要重新配置。Vite配置的代理在打包之后就会失效,所以要在nginx重新配置。# 这面这句是替换掉vite文件的代理路径api。# 下面是代理要转发到的后端接口地址。

2024-12-05 16:44:02 474

原创 Linux(乌班图)安装指定版本JDK

这里可以看到是jdk17,代表安装成功。需要使用ls查出对应包名。记住要是.deb后缀。

2024-12-03 16:30:39 298

原创 ES6面试11问

主要使用反引号代替传统的单引号或双引号,并且可以在字符串内嵌入表达式,这种方式使字符串操作更加灵活数组解构:把数组中的元素分配到变量中。//输出1对象解构:把对象中的属性值分配到变量中。

2024-11-21 20:12:11 858

原创 JVM面试题

java常量池主要有两种,一种是运行时常量池,是在class文件编译时生成的常量信息另一种是字符串常量池,位于堆空间,作用是减少重复对象的创建,节省空间,(使用new关键字创建,都会在堆中创建新的对象)intern方法会主动将串池中还没有的字符串对象放入串池,如果有就不会放入java的直接内存是操作系统分配的内存区域,通过java.nio包下的ByteBuffer.allocateDirect()方法分配。

2024-11-20 15:13:49 774

原创 登录退出后的一些逻辑处理

定义一个loginState = true变量(true未登录,false登录),判断登录状态 登录后在本地存储token(包含登录用户的自定义信息),以及用户基本信息 判断有无token,有则loginState = false,表示用户已经登录 在onMounted获取用户的基本信息,判断有无token,保持登录状态 有一些tabs需要登录以后才能解锁,那么loginState = true时未登录就要提示 登录后是false 就进行跳转(在全局组件中onMounted中判断是否有toke

2024-10-21 14:58:29 178

原创 Vue3动态填充Echars5数据(柱形图为例)

1.安装echars2.引入echars3.template写div代码4.script 写三步走基础代码5.方法填入onMounted6.获取api请求的数据修改echars中关于数据的值(修改完后需要重新调用该(echars)方法)

2024-10-15 13:43:44 639

原创 管理系统批量删除的逻辑方法

1.点击按钮,打开对话框,对话框上的确定按钮实现批量删除。

2024-10-10 11:16:00 739

原创 Vue3 El-upload文件上传时被后端拦截的问题

当后端设置了拦截器,前端在使用el-upload进行文件上传时并不会携带token,需要另外进行设置,一般在axios的请求拦截器中会进行token的统一获取,el-upload的数据请求不会进入到这里。获取到了前端携带的token,后续代码进行解析token从而完成token验证。我们需要在组件中使用headers属性,携带token。headers格式如下。

2024-10-04 10:32:36 703

原创 SpringBoot文件上传(本地存储)回显前端

以图片为例,前端调用后端上传文件的接口,将图片文件上传到接口指定的位置,然后后端返回该图片的路径到前端,前端通过该路径就可以直接在浏览器访问,要是进行增改操作,也是将该路径添加到数据库,代码实现原理看图,结果是返回该文件添加到的位置路径。所以说要操作的不是这张图片本身,而是图片的路径。打开文件位置,该文件位置可以是。(本地存储,云储存皆适用)

2024-10-03 19:40:09 1010

原创 Vue3翻页后刷新并保持该页面数据

5.页面打开时就应该获取数据,获取到route的page后传递到pinia中的page,那么每次刷新就会根据page获取相应页码的数据,本来想在pinia中直接使用route,但route一般只定义在setup函数中。2.跳转到第二页的数据,那么pinia中的page应该为2,刷新页面后,page会变回到原始定义的数据1,所以刷新页面后,第2页的数据无法保持,回到第1页。3.我们选择将page带入到route中,每次刷新页面,将获取route中的page,保持刷新后也是第2页的数据。

2024-10-02 16:57:00 1329

原创 总结http请求流程

参数:page,pageSize,其他条件(eg:根据姓名/性别/手机号) (params)参数:Object (参数在请求体,Body/json)请求方式:put (参数在请求体,Body/json)参数:Object ( id+其他需要修改的参数)参数:id (路径参数在url后拼接即可)参数:id (params)请求方式:delete。

2024-09-30 23:10:13 392

原创 Vue3跨组件更新数据后的实时刷新

那么在跨组件中子组件删除一条数据后,需要调用父组件展示页面的方法(为什么不在子组件用展示页面的方法,因为头部的条件部分是在父组件中定义的,需要在父组件中传入条件展示界面)由于展示的数据是带有条件的,那么我们也需要携带父组件的条件(也就是第一张图片传入的search,子组件props接收后带入到该方法即刷新页面)父组件给子组件传递表单数据,子组件展示后在子组件删除一条记录,如何让删除后的数据实时刷新。既然打开页面就要刷新数据,那么我们在pinia中定义展示数据的方法,父组件在进行调用。

2024-09-25 09:48:05 1209

原创 SpringBoot中Mysql返回字段的小问题

所以在数据库返回的字段中没有password,但是返回给前端的实体类中有password字段,最后就变为了null的password字段。那么在返回的数据中以明文返回了密码的数据,这是极其不安全的,那么一般会在密码字段做校验,这里在数据库返回字段中解决。在项目开发中,难免需要返回数据,进行页面的展示。原因就是在返回的实体类中是有密码字段的。在日志中可以看到,并没有返回密码字段。例如(以下内容均为自定义假数据)那么为什么这里还有密码的字段,这时候再返回的数据就是。

2024-09-24 11:06:35 549

原创 关于对象存储服务OSS的一些相关问题

选择哪种方案主要取决于具体的需求和偏好,例如是否需要高度灵活性和自主权、是否愿意承担更多的设置和维护工作,以及是否对成本有严格的要求等。这些技术通常设计为独立的存储服务,可以轻松地与后端应用集成,并提供丰富的API和功能来管理存储的文件。MinIO是一个自托管的开源解决方案,用户可以完全控制自己的数据和基础设施,但这也意味着用户需要负责更多的设置和维护工作。用户需要自行确保数据和系统的安全。:如果没有适当的访问控制和安全措施,直接存储在后端项目目录中的文件可能会面临安全风险,如未经授权的访问或篡改。

2024-09-12 15:45:50 1080

原创 管理系统的7大基本操作

4.根据id修改数据(【动态Sql】中的if不该全部指定为’’,否则修改不必要数据为’’会操作失败,应该大部分为null)6.条件查询数据(一般条件+分页条件,【动态Sql】)3.批量删除数据(逻辑:循环删除)(查询操作需要返回数据)7.根据id查询数据。2.根据id删除数据。

2024-08-19 10:43:59 320

原创 前后端跨域问题的解决方案

跨域,全称为“跨域资源共享”(Cross-Origin Resource Sharing,简称CORS),是指浏览器的一种安全策略,用于限制从一个源(origin)的文档或脚本如何与另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。简单来说,如果你的网页尝试请求另一个域(即协议、域名或端口任一不同)的资源时,就构成了跨域请求。默认情况下,出于安全原因,浏览器会阻止跨域HTTP请求。

2024-08-17 11:05:48 1038

原创 Mysql卸载删除

mysql bug解决不了,即可彻底删除mysql,再重新安装

2024-08-06 17:26:08 515

el-upload有关代码

el-upload有关代码,包含携带token,成功后的回调,文件上传格式限定,

2024-10-04

element-plus地区二级联动内容

element-plus地区二级联动内容

2024-09-25

空空如也

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

TA关注的人

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