- 博客(86)
- 收藏
- 关注
原创 springboot项目controller方法参数校验异常处理
假设有一个控制器(Controller)方法,该方法接受一个用户注册的请求,并期望接收用户名和密码作为参数。想要确保这两个参数不能为空或只包含空格。还可以创建自定义注解和拦截器来实现参数的自定义校验逻辑。这种方式更加灵活,可以在请求处理之前拦截请求并进行校验。在方法内部手动检查参数,如果不满足条件,则抛出自定义异常并在方法内部进行捕获和处理。异常,并从异常中提取校验错误信息,然后将错误信息封装到响应中返回给前端。参数不能为空或只包含空格。为空或只包含空格,Spring Boot将抛出。
2023-09-24 20:55:45
604
原创 Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/Datatype
如果你的应用程序依赖于JAXB,并且你正在使用Java 9或更高版本,你需要将JAXB作为项目的额外依赖项包含在内。你可以通过将以下依赖项添加到项目的构建文件(例如,Maven的。类,而该类在 Java 9 及以后的版本中不再默认包含在标准 Java SE 分发中,因此可能会导致。:首先,请确认你正在使用的Java版本。如果你正在使用Java 9或更高版本,要注意。确保你正在使用与你的应用程序兼容的Java版本。确保在添加这些依赖项后,重新构建和部署你的应用程序。这个错误表明你的应用程序依赖于。
2023-09-10 00:18:02
6110
原创 postman测试springboot项目常见错误
400 服务器不理解请求的语法。一般来说可能是请求的路径需要请求参数,请求参数书写有错误,比如数据类型。405 禁用请求中指定的方法 可能时请求方式错误,比如应该是post请求,结果设置成了get。406 无法使用请求的内容特性响应请求的页面。401 身份验证错误,需要身份认证。404 一般就是路径写错了。403 服务器拒绝请求。
2023-09-02 17:12:31
401
原创 验证类注解
在 Spring Boot 中,你可以使用注解来进行验证类中的字段,确保传入的数据满足特定的规则和条件。注解是一个用于触发数据验证的关键注解,结合验证注解,可以在 Spring Boot 应用中实现数据验证,提高数据的准确性和安全性。在上面的示例中,如果请求数据不满足类中定义的验证规则,将会抛出验证异常,你可以在全局异常处理中处理这些异常。包中的注解来支持数据验证,这些注解可以应用在类的字段上,以定义字段的验证规则。通过使用验证注解,你可以轻松地在应用中实现数据验证,提高数据的完整性和安全性。
2023-08-20 19:38:11
133
原创 IDEA模板注解设置
https://www.cnblogs.com/coder-ahao/p/14224034.htmlIDEA设置注释模板(详细版)Springboot 添加server.servlet.context-path相关使用总结_server.servlet.contextpath_专注写bug的博客-优快云博客
2023-08-20 16:17:35
58
原创 JPA相关知识
JPA提供了一组内置的方法,你可以直接在Repository接口中使用,而不需要自己编写相应的SQL查询。通过命名规则,你可以创建自定义的添加方法,JPA会根据方法的名称自动生成相应的查询。通过命名规则,你可以创建自定义的更新方法,JPA会根据方法的名称自动生成相应的查询。同时,你也可以根据方法名的规则自定义添加方法,以满足特定的需求。在使用自定义更新方法时,需要注意方法名的命名规则,以及方法参数的命名与顺序。方法来进行更新操作。同时,你也可以根据方法名的规则自定义更新方法,以满足特定的需求。
2023-08-20 16:10:42
55
原创 周末知识点:git的使用 单元测试 Mock测试
在单元测试中,当你使用Mockito创建一个Mock对象时,你可以在测试过程中跟踪该对象上的方法调用。是默认的,你可以省略不写,它表示你期望该方法被调用一次。如果你要验证多次调用,你可以传递不同的参数给。方法允许你断言特定的方法是否被调用,并且你可以指定期望的调用次数。方法是用来验证Mock对象上的方法调用是否按照预期发生,它是确保代码行为正确的一种方式。进行单元测试,测试Service和Controller层的方法。方法的行为,然后我们调用被测试的方法。是否在被测试的方法中被调用了一次。
2023-08-20 10:50:44
136
原创 今日涉及知识点总结---maven/git/spring security禁用
3.spring security禁用:不知道设置了什么,测试接口时需要验证用户名和密码。修改新版maven的setting.xml,配置了环境变量,但是没有成功。明天试一下直接将本地仓库copy过来。6.Spring boot 进行单元测试。1.不同maven利用同一个本地仓库。7.Swagger的使用 Apifox。4.IDEA查找替换。5.JPA的简单使用。
2023-08-17 22:53:35
67
原创 实现数据的增删改查接口
如果需要,在请求的 "Params" 或 "Body" 部分添加必要的请求参数。在测试时,请确保您的应用程序已经正确实现了相应的功能,并且在 Postman 中使用正确的请求类型、URL 和参数。请注意,这只是一个简单的示例,您可以根据实际需求进一步扩展和完善功能,添加更多的业务逻辑、异常处理、数据验证等。是要更新的产品的 ID),在 "Body" 部分选择 "raw",然后输入要更新的数据的 JSON 格式。),在 "Body" 部分选择 "raw",然后输入要创建的数据的 JSON 格式。
2023-08-16 23:20:13
142
原创 35.判断是不是平衡二叉树
在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树。输入一棵节点数为 n 二叉树,判断该二叉树是否是平衡二叉树。
2023-08-14 21:26:16
37
原创 36.二叉搜索树的最近公共祖先
1.对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q,最近公共祖先LCA(T,p,q)表示一个节点x,满足x是p和q的祖先且x的深度尽可能大。在这里,一个节点也可以是它自己的祖先.2.二叉搜索树是若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值。给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。4.p、q 为不同节点且均存在于给定的二叉搜索树中。3.所有节点的值都是唯一的。
2023-08-14 21:24:38
51
原创 PriorityQueue的使用
在Java中,优先队列(PriorityQueue)是一种特殊类型的队列,它可以根据元素的优先级进行排序和访问。默认情况下,优先队列按元素的自然顺序进行排序(例如,数字按升序排序,字符串按字典顺序排序)。如果你想在优先队列中存储数组类型的元素,你需要自定义比较器来定义元素之间的优先级。总之,优先队列是一种非常有用的数据结构,特别适用于需要处理元素按照优先级排序的情况,如任务调度、事件处理等。不是一定要定义比较器,但在大多数情况下,定义一个比较器是很有帮助的,特别是当你想要按照特定的优先级对元素进行排序时。
2023-08-14 21:22:33
109
原创 347.前k个高频元素
利用了优先队列中的小顶堆的特性。首先利用HashMap统计每个元素出现的次数。然后利用优先队列维护出现次数最多的K个元素。当有大于堆顶的键值对出现时,就将堆顶键值对删除。
2023-08-13 22:44:26
42
原创 Deque接口的使用
(Double Ended Queue)是 Java 标准库中的一个接口,代表了一个双端队列,即既可以从队列的前端(头部)进行操作,也可以从队列的后端(尾部)进行操作。如果你的应用需要频繁进行添加和删除操作,特别是在队列的头部和尾部,那么基于链表的实现可能更适合。如果你需要经常按索引访问队列中的元素,基于数组的实现可能更合适,因为它的随机访问性能更好。如果内存占用是一个关键因素,你可能需要权衡基于链表和基于数组的实现的内存开销。如果你对性能有较高的要求,可以考虑基于数组的实现,但要注意可能的数组复制操作。
2023-08-13 22:15:40
112
原创 239.滑动窗口最大值
代码思路:因为每次在窗口里的数字是不断向后移动的,所以需要保证存储最大值的队列是一个单调递减的队列。也就是说,队头的元素一定是那个最大值,这样每次向右移动,有了元素的变化后,才能方便的得到当前窗口中的最大值。如果当前的队列是不为空的,就要比较当前值是否大于队列中的值,如果大于就删除队列中的那个元素,不断比较。然后,从第k+1个元素开始,就涉及到了是否删除队列中队头元素的问题,因为滑动窗口在向后移动,如果从滑动窗口中去掉的那个元素正好是上一个窗口中的最大值,那队列中的这个元素需要删除掉。
2023-08-13 21:49:52
45
原创 33.判断是不是二叉搜索树
解法一:通过中序遍历,将每个结点的值放入ArrayList中,然后再判断这个ArrayList是不是按顺序的。题目:给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。
2023-08-13 21:35:37
52
原创 150.逆波兰表达式求值
算法思想:一旦遇到运算符,就让运算符临近的两个数值进行计算,并将结果返回,不断重复运算符临近的两个数值进行计算。在栈中,就是如果为数字就进栈,位运算符就将栈顶的两个数字进行运算,并将计算结果压栈。
2023-08-13 15:44:41
42
原创 38.重建二叉树
题目:给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。题目:给定节点数为 n 的二叉树的中序遍历和后序遍历结果,请重建出该二叉树并返回它的头结点。
2023-08-13 14:19:03
25
原创 29.二叉树中和为某一值的路径(二)
题目:输入一颗二叉树的根节点root和一个整数expectNumber,找出二叉树中结点值的和为expectNumber的所有路径。和(一)的区别就是在于输出方式的区别。
2023-08-12 20:46:04
32
原创 37.二叉树的最近公共祖先
题目:给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。
2023-08-12 20:44:27
90
原创 40.用两个栈实现队列
题目:用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。
2023-08-12 20:43:31
31
原创 39.输出二叉树的右视图
思路:先根据前序遍历和中序遍历,得到二叉树。根据先序顺序得到根,再根据根得到其在中序遍历中的位置,然后得到左右子树的size,从而得到左右子树的先序遍历和中序遍历。最后利用栈按照层序遍历,每层最后一个输出的加入到ArrayList,因为ArrayList是动态数组,方便增删,最后再转换成数组的形式输出。题目:请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图。
2023-08-12 20:43:11
133
原创 44.数组中数量超过一半的数字
例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。题目:给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
2023-08-12 20:42:27
33
原创 63. 不同路径 II
动态规划问题:在不同路径的基础上加入了障碍物,就在障碍物所在位置标记路径为0即可,还需注意第一行和第一列障碍物后边的也都不能走了,初始化容易出错。
2023-08-12 20:39:40
88
原创 62.不同路径
动态规划问题:首先确定dp[i][j]的含义:(0,0)->(i,j)有多少条路经。以(i,j)为例:到该点的前一步只有两种情况:要么是从其上边这个点过来,要么是从左边这个点过来。所以(i,j)的路径等于这两个点的路径之和。因而递推公式为dp[i][j] = dp[i][j-1]+dp[i-1][j];遍历方式就从左到右遍历求出这整个矩阵的值,就求出了最右下角的值。机器人每次只能向下或者向右移动一步。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
2023-08-10 20:47:48
108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人