自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用CountdownLatch和线程池批量处理http请求,并处理响应数据

问题点:如果遍历所有的服务器地址,然后串行请求就会出现请求时间过长,加入需要请求十个服务器,一个服务器是1s那么请求服务器数据总时间就需要10s,导致响应时间太长,所以需要使用多线程。如果直接使用多线程去请求,那么没法知道是否所有接口是否都请求结束,所以用到了技术门闩。​ 四个接口(三个模拟请求服务器接口,一个直接访问的接口),由于我是本地环境,所以在每个接口中设置了不同的休眠时间,来模拟不同服务器场景。​ 背景:最近项目的一个接口数据,需要去请求其他多个服务器的数据,然后统一返回;

2023-10-22 10:34:42 272

原创 尚硅谷谷粒商城部分报错问题处理

记录b站尚硅谷的谷粒商城教程,出现的一些问题及其处理方式

2023-10-01 10:02:15 466 2

原创 XML、HTML注入和越权问题处理

原理:越权主要分为垂直越权和水平越权,垂直越权是指当一个普通用户使用管理员的信息能够获取到不属于自己权限内的信息。水平越权是指都是普通用户,但是不同部门不同组,却可以通过接口获取其他人的信息。处理:我们此次主要采用的是引入Security 框架,通过@PreAuthorize注解和自定义权限认证方法去进行接口管控(此方法主要用于水平越权)。使用的是antisamy-ebay.xml文件。使用方法:在接口层次上加 @PreAuthorize(“@pms.hasPermission(‘自定义的权限值’)”)

2023-09-27 16:13:24 976

原创 Java打包相关

【代码】Java打包相关。

2022-08-26 11:41:17 236 1

原创 Mysql---Explain执行计划

Mysql sql优化之学习执行计划咱们服务器日常工作中经常会需要进行sql优化,这时就需要用到执行计划了,关键字是explain。用法:explain + sql语句。例如:EXPLAIN SELECT * from user;执行之后会出现类似以下的结果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oGvv6dtU-1642599662638)(D:\person\notebook\assets\1642597730028.png)]每一列的含义

2022-01-19 21:42:28 875

原创 华为机试-----HJ25 数据分类处理

描述信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码、 QQ 用户、手机号码、银行帐号等信息及活动记录。采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出。请注意本题有多组输入用例。输入描述:一组输入整数序列I和一组规则整数序列R,I和R序列的第一个整数为序列的个数(个数不包含第一个整数);整数范围为0~0xFFFFFFFF,序列个数不限输出描述:从R依次中取出R,对I进行处理,找到满足条件的I:I整数对应的数字需要连续包含R对应的数字。比如R为23,I为23

2021-10-27 22:53:33 385

原创 力扣刷题--125、验证回文串

题目: 验证回文串题号:125难易程度:简单题面:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例1输入: “A man, a plan, a canal: Panama”输出: true解释:“amanaplanacanalpanama” 是回文串示例二:输入: “race a car”输出: false解释:“raceacar” 不是回文串题目意思:即题面。。题解:题解:

2021-10-25 21:29:58 180

原创 力扣刷题--121、买卖股票的最佳时机

题目: 买卖股票的最佳时机题号:121难易程度:简单题面:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例1输入:prices = [7,6,4,3,1]输出:0解释:在这种情况下, 没有交易完成, 所以最大利润为 0。示例二

2021-10-24 10:26:01 113

原创 力扣刷题--112、路径总和

题目: 路径总和题号:112难易程度:简单题面:给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。叶子节点 是指没有子节点的节点。示例1输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true示例二:输入:root = [1,2], targetSum

2021-10-19 22:46:12 140

原创 力扣刷题--111、二叉树的最小深度

题目: 二叉树的最小深度题号:111难易程度:简单题面:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例1输入:root = [3,9,20,null,null,15,7]输出:2示例二:输入:root = [2,null,3,null,4,null,5,null,6]输出:5题目意思:即题面。题解:题解:1、分成四种情况。第一种是空树,所以是0;第二种是左节点为空,那么就是右子

2021-10-18 21:53:30 113

原创 力扣刷题--110、平衡二叉树

题目: 平衡二叉树题号:110难易程度:简单题面:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例1输入:root = [3,9,20,null,null,15,7]输出:true示例二:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例三:输入:root = []输出:true题目意思:即题面。题解:题解:通

2021-10-17 11:43:15 168

原创 力扣刷题--108、将有序数组转换为二叉搜索树

题目: 将有序数组转换为二叉搜索树题号:108难易程度:简单题面:给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:题目意思:即题面。题解:已知是一个升序的数组,二叉树中的

2021-10-15 19:38:46 135

原创 力扣刷题--104、二叉树的最大深度

题目: 二叉树的最大深度题号:104难易程度:简单题面:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例1:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 .题目意思:返回这个二叉树最多的左子树或者右子树是多少。题解:题解:1、递归。分别递归左右子树,然后比较大小,用最大的值加1.,public class LeetCode104 { pub

2021-10-14 16:17:39 107

原创 力扣刷题--101、对称二叉树

题目: 对称二叉树题号:101难易程度:简单题面:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:题目意思:判断两个二叉树是对称的。题解:先判断是否为空,然后判左边的左子树和右边的右子树,左边的右子树和右边的左子树是否相等。public class LeetCode101 { public static class TreeNode {

2021-10-13 21:55:41 139

原创 力扣刷题--100、相同的树

题目: 相同的树题号:100难易程度:简单题面:给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。。示例1:输入:p = [1,2,3], q = [1,2,3]输出:true示例2:输入:p = [1,2], q = [1,null,2]输出:false示例3输入:p = [1,2,1], q = [1,1,2]输出:false题目意思:判断两个二叉树的结构相同。

2021-10-11 18:30:00 133

原创 力扣刷题--94、二叉树的中序遍历

题目: 二叉树的中序遍历题号:94难易程度:简单题面:给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例1:输入:root = [1,null,2,3]输出:[1,3,2]示例2:输入:root = []输出:[]示例3输入:root = [1]输出:[1]题目意思:使用中序遍历输出一个二叉树的值。前中后序遍历:DLR–前序遍历(根在前,从左往右,一棵树的根永远在左子树前面,左子树又永远在右子树前面 )LDR–中序遍历(根在中,从左往右,一棵

2021-10-10 20:51:05 217

原创 力扣刷题--88、合并两个有序数组

题目: 合并两个有序数组题号:88难易程度:简单题面:给你两个按非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。num

2021-10-09 18:00:00 288

原创 力扣刷题--83、删除排序链表中的重复元素

题目: 删除排序链表中的重复元素题号:83难易程度:简单题面:存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。示例1:输入:head = [1,1,2]输出:[1,2]示例2:输入:head = [1,1,2,3,3]输出:[1,2,3]题目意思:有一个已经排好序的链表,将这个链表中重复的元素删除,最后返回一个不存在重复元素的链表。题解:由于已经是排好序的的链表,所以重复的

2021-10-08 22:49:08 128

原创 力扣刷题--70、爬楼梯

题目: 爬楼梯题号:70难易程度:简单题面:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶题目意思:题解:

2021-10-07 10:24:50 114

原创 力扣刷题--69、Sqrt(x)

题目: Sqrt(x)题号:69难易程度:简单题面:给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。示例1:输入:x = 4输出:2示例2:输入:x = 8输出:2解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。题目意思:找到输入值得算术平方根,当这个值

2021-10-06 22:43:49 283

原创 力扣刷题--21、合并两个有序链表

题目: 合并两个有序链表题号:21难易程度:简单题面:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1 = [], l2 = []输出:[]示例3:输入:l1 = [], l2 = [0]输出:[0]题目意思:就是按照将两个链表进行合并为一个,但是必须按照顺序合并。题解:先判断为空情况。然后采用递

2021-10-01 17:44:25 102

原创 力扣刷题--1. 两数之和

题目: 两数之和题号:01难易程度:简单题面:给定一个整数数组 nums[]和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例2:

2021-09-30 11:46:21 100

原创 redis使用

一、项目背景:最近做一个官网的项目,然后需要将官网接口查到的列表数据存入redis中,防止每次都需要去数据库中查取相应的数据。二、思考:1、首先是需要一个redis环境。2、需要在项目中配置redis服务器的相应信息。3、添加redis相关的配置类。4、接口中添加redis相关的逻辑。5、验证是否添加成功和当失效后是否会自动删除数据。三、编码:redis环境:我使用的是php_study pro工具,然后直接一键安装的redis环境。1、yml文件中配置相应的地址信息。sprin

2021-09-29 22:42:07 117

原创 接口文档管理工具--Yapi安装

前言现在咱们做的项目都是前后端分离的,这样就可以保证前端和后端可以同时进行,但是同时会出现一个问题—>前端不知道咱们服务器的接口是怎么定义的,不知道里面的参数应该如何传递。这个时候就需要使用接口文档工具了,之前用过swagger感觉也挺好的,但这次项目需要使用Yapi来进行管理接口文档,故记录一下。安装环境:阿里云服务器一台(Centos7.6)步骤:安装nodejs–>安装mongodb–>配置远程访问–>安装git–>搭建Yapi环境–>可视化部署1、安

2021-09-17 21:53:35 4944

原创 Java小工具--hutool和其他小方法

记录一些小方法,因为很多时候不用就忘了,所以记在这里:1、 Mybatis-plus使用条件查询方式。QueryWrapper<User> queryWrapper = new QueryWrapper();queryWrapper.lambda().eq(User::getUserName, userName).eq(User::getAge, age);2、遍历获取枚举的值:public static void main(String[] args) { for

2021-09-09 22:10:01 362

原创 MQ相关基础知识

MQ1、AMQP和rabbitMq:amqp是一种网络协议,支持符合条件的客户端和消息代理中间件进行通讯。rabbitmq是amqp的实现,所以rabbitmq可以使用amqp的所有概念和准则。2、消息流向:生产者(publisher/producer)生产具有指定路由键(routing key)的消息将其发布给消息代理(broker 即rabbitmq)中的交换机(exchange),交换机将消息中的路由键与队列(queue)绑定信息(binding)中存储的路由键对比,将消息路由到匹配的队列中。

2021-08-11 21:16:04 735 2

原创 minio之阿里云服务器安装

写在前面Minio是一个开源的分布式文件存储系统,当然你可以直接购买阿里云的OSS对象存储服务,也不是很贵,但我这里纯粹自己拿来玩所以就自己安装这个Minio服务。安装准备阿里云服务器一台(centos7.6)Xshell连接工具安装1、使用xshell连接服务器。2、在usr目录下创建一个minio文件存放minio的下载包。命令:cd /usrmkdir minio3、下载minio文件。命令:wget https://dl.min.io/s

2021-04-17 12:51:22 2630

原创 第一次使用git工具多人协作

最近有幸参加了一个多人项目,由于之前并未使用接触过多人一起做项目,而且未接触多分支操作,所以顺便记录一下。1.注册一个码云账号2.fork源项目,即将项目文件复制到自己的账号下。3.进入自己的仓库,然后使用fit工具将仓库下的项目克隆到本地。命令:git clone 项目地址4.同步源项目到本地仓库。4.1 查看本地仓库分支 ,命令:git remote -v4.2 添加源项目地址,命令:git remote add 名字 url地址注意:test是随...

2021-04-10 19:08:00 157

原创 面试记录

1、String、StringBuilder、StringBuffer的区别:1.操作数量较少的字符串用String,不可修改的字符串;2.在单线程且操作大量字符串用StringBuilder,速度快,但线程不安全,可修改;3.在多线程且操作大量字符串用StringButter,线程安全,可修改。2、Switch case中能使用long、short、byte吗?3、List、Map、Set的区别4、Mysql中UnionUnion all的区别?...

2021-04-01 13:08:24 132 4

原创 第一次云服务器部署之Java Web项目部署

第一次云服务器部署之Java Web项目部署1、数据库操作:将项目中的数据库地址修改为服务器数据库的地址,并且将本地数据库的相关的数据表导入服务器数据库中。2、将项目打包成war包:找到项目的web目录点击下方的apply或者OK。打包成WAR包:点击上方的build。3、在项目的out目录下找到刚刚生成的war包,并上传到服务器tomcat安装目录下的webapps里。4、切换到bin目录下重启服务器。./startup.sh5、访问:ip加上包名即可。...

2021-03-06 22:39:25 160

原创 第一次云服务器部署之Mysql安装

云服务器部署之Mysql1、下载:Mysql8版本:2、使用工具将其上传到服务器。3、解压tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz 报错:tar (child): xz: Cannot exec: No such file or directorytar (child): Error is not recoverable: exiting nowtar: Child returned status 2tar: Error is

2021-03-06 20:13:20 371 2

原创 阿里云服务器更换系统

由于之前买的云服务器是Centos6.9 ,安装Mysql时出现:http://mirrors.cloud.aliyuncs.com/epel/6/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"Trying other mirror.To address this issue please refer to the below knowl

2021-03-05 20:24:13 229

原创 第一次云服务器部署之JDK11和Tomcat8安装

第一步选购服务器:本人选购的是阿里云开发者计划中的ECS突发性能型 t6。第二步安装环境:1、查看服务器是否已经安装java,未找到java;创建一个文件夹用于存放jdk和tomcat安装包。yum list installed |grep javamkdir first_deploy2、下载jdk。jdk11的官网地址:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html。百度网盘:链接: https:

2021-03-03 23:57:07 1362 2

原创 SpringCloud---Fegin、Gateway、分布式配置中心、Bus服务总线

三SpringCloud----Eureka(一)Springcloud之负载均衡、熔断器1.FeignFeign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。1.1.实操导入依赖:<dependency> <groupId>org.springframework.cloud</groupId> <

2021-01-23 23:23:36 361

原创 Springcloud之负载均衡、熔断器

二1.负载均衡Ribbon1.1.案例在user-service中设置端口:复制一个新的application,端口号设为9092启动Eureka:1.2.开启负载均衡在consumer中加入LoadBalanced注解:修改controller,不再手动获取ip和端口,而是直接通过服务名称调用:1.3.负载均衡的策略类名:RibbonLoadBalanceClient。方法名:choose()默认方法是轮询。修改负载均衡配置规则(将轮询修改为随机):user-ser

2021-01-20 23:00:37 545 5

原创 Git工具使用记录

基础使用:git init 初始化git status 查看状态git add . 添加文件,可以单独添加git commit -m “” 提交并写上注释git add origin +地址 添加远程仓库地址git push origin master 推到仓库git pull origin master 拉取到本地报错信息:! [rejected] master -> master (non-fast-forward)error: failed t

2021-01-19 23:30:38 484

原创 SpringCloud----Eureka(一)

SpringCloud1. 系统演变单一应用–>垂直拆分–> 分布式服务–>SOA–>微服务1.1. 单一应用将所有的功能都部署在一起,以减少部署节点和成本。优点:系统开发速度快维护成本低适用于并发要求较低的系统缺点:代码耦合度高,后期维护困难无法针对不同模块进行优化无法水平扩展单点容错率低,并发能力差1.2. 垂直拆分优点:系统拆分实现了流量分担,解决了并发问题可以针对不同模块进行优化方便水平扩展,负载均

2021-01-12 23:08:28 165

原创 记录

1、th标签中获取后台值:<div class="form-group"> <label>性别:</label> <!-- TODO 回显性别 --> <input type="radio" name="sex" value="男" th:value="*{sex}"/>男 <input type="radio" name="sex" value="女" th:value="*{sex}"

2021-01-04 23:28:58 107

原创 我和springboot的第一次相遇

SpringBoot初识一、基础1、概念springboot是spring快速开发脚手架,通过约定大于配置的方式,快速构建和启动spring项目2、特点 快速开发spring应用的框架 内嵌tomcat和jetty容器,不需要单独安装容器,jar包直接发布一个web应用 简化maven配置,parent这种方式,一站式引入需要的各种依赖 基于注解的零配置思想 和各种流行框架,spring web mvc,mybatis,spring cloud无缝整合3、基础配置<?xml

2020-12-03 08:45:22 208

原创 SSM基础框架配置文件

调了好几个晚上终于调通了配置文件,记录下SSM项目基础框架配置文件:环境:jdk11、idea2020、maven3.6、mysql81、pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc

2020-11-26 23:22:05 96

rabbitmq-server安装文件.zip

包括rabbitmq-server-3.8.5.exe和otp_win64_23.0.exe;在安装时需要优先安装otp_win64_23.0.exe然后在安装rabbitmq-server-3.8.5.exe。

2021-01-23

空空如也

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

TA关注的人

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