- 博客(45)
- 收藏
- 关注
原创 Jmeter实现CSV数据批量导入
CSV:逗号分隔值,是一种简洁且常见的数据存储格式。在Jmeter中,可以通过“用户自定义的变量”来实现参数化使操作方便,使用语法位:${参数名},如下图:而CSV也同理,定义变量以省去一条一条录入数据的繁琐步骤.因为我这里是json格式的数据,所以格式如下:注意:线程组勾选永远循环,因为你不知道在遍历txt文件时有几条数据,需要一直循环遍历
2023-12-20 22:59:33
1380
原创 Jmeter实现性能测试--高频率(高吞吐量)
高频率场景通常涉及系统需要在极短时间内处理大量请求或事件。这些场景可能要求系统在短时间内执行多次操作,例如高频率的数据更新、传感器数据采集、金融交易、实时监控等。拿访问百度举例,我要实现单个用户以 20QPS ( == 20 次/s) 的频率访问百度,持续15秒,统计服务器的平均响应时间。因为频率位20次/s,持续15秒,所以总共访问20x15=300次。这里参数是每分钟的吞吐量,所以是20x60=1200。所以在某些情况下需要对程序进行高并发测试。2、设置http请求参数。3、设置常数吞吐量定时器。
2023-12-20 21:45:02
910
原创 Jmeter实现性能测试--高并发
在进行访问时,我们此处设定了1000个线程,并且同一时间让1000个线程同时启动访问,不会有这种情况。但是若我将访问数量设置为300,那么1000个线程会分四次进行访问,而在第4次访问时,由于只剩下100线程,没法满足300线程,若没有设置超时时间,那么其将会挂起一直等待。高并发场景是指系统在相对短时间内面对大量用户同时访问的情况。这种场景常见于在线服务、电商平台、社交网络、金融交易等需要处理大量并发请求的系统。这里我拿百度举例,我同一时间对其进行1000次的访问。
2023-12-19 23:07:38
650
原创 Jmeter自动化脚本——实现最基本增删改查
每次软件迭代后,我们都需要保证新改的代码没有影响到之前的代码,而每次人工去测会很麻烦,所以需要一套自动化脚本去实现测试需求。
2023-12-08 22:53:13
677
原创 过滤器filter和拦截器interceptor,并分别实现登录认证功能
Override// 将通用的 ServletRequest 转换为 HttpServletRequest// 将通用的 ServletResponse 转换为 HttpServletResponse// 1、获取请求url// 2、判断请求url中是否包含login,如果包含,说明是登录操作,放行。//放行操作return;// 3、获取请求头中的令牌(token)。// 4、判断令牌是否存在,如果不存在,返回错误结果(未登录)。if (!
2023-08-17 23:02:05
871
原创 会话跟踪方案中的JWT技术——用于实现登录认证
它包含了我希望在 JWT 的载荷(Payload)中添加的声明(claims)。在 JWT 中,载荷是一组包含有关令牌的信息的键值对。定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的。:这是创建 JWT 令牌的生成器的起始点。,用于指定从当前时间开始,多长时间后 JWT 将过期。:这一步将各个配置组合起来生成最终的 JWT 令牌。:这是指定如何对 JWT 进行签名的部分。:这里设置了 JWT 的过期时间。则是用于签名的密钥。
2023-08-16 15:40:16
197
原创 JAVA中的分层解耦
在软件开发中,分层解耦是一种设计原则,旨在将应用程序划分为不同的逻辑层次,使每个层次的功能和责任清晰,从而降低系统的耦合性,提高代码的可维护性、可扩展性和可重用性。分层解耦有助于将复杂的系统拆分为独立的模块,使各个模块之间的关系更加明确,便于团队协作和系统维护。通常会将其分为三层,也称三层架构:controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据。service: 业务逻辑层,处理具体的业务逻辑。
2023-08-13 11:10:27
552
原创 @ConfigurationProperties和@Value注解
和@Value是 Spring Framework 中用于从配置文件中读取属性值的两个常用注解。其作用是将配置文件中的属性值绑定到 Java 类的属性上,以便在应用程序中使用。
2023-08-10 12:23:04
670
原创 YAML配置文件
在springboot中,除了支持properties配置文件外还支持yaml配置文件。YAML(YAML Ain't Markup Language)是一种用于配置文件的格式,它使用简洁的、易读的文本来表示数据结构。YAML文件通常以.yml或.yaml作为文件扩展名。YAML广泛用于配置文件、数据序列化、文档等领域,也常用于构建和配置应用程序。
2023-08-10 11:46:38
440
原创 静态方法与非静态方法的区别
当在Java中定义类的方法时,可以使用两种不同的修饰符:静态(static)和非静态(非静态也叫实例,instance)。这两种方法在用途和访问方式上有一些重要区别。总之,静态方法是属于类的,可以通过类名直接调用,而非静态方法是属于类的实例的,需要通过实例来调用。选择使用哪种方法取决于方法的功能和操作的数据。
2023-08-09 16:19:53
483
原创 实现文件上传时防止文件名重复的方法:UUID
UUID(Universally Unique Identifier)是一个128位的全局唯一标识符。它是由一组数字和字母组成,采用十六进制表示,并且在理论上具有非常低的重复概率。UUID的生成算法保证了在不同系统、不同时间和不同空间中生成的标识符几乎不可能发生冲突,因此可以被广泛用于分布式系统和大规模应用中。UUID的标准格式为:xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx其中,每个 x 表示一个十六进制的数字(0-9 和 a-f),M 和 N 表示特定的标识位。
2023-08-03 22:26:21
1923
原创 JAVA实现文件上传时涉及的MultipartFile 接口
实例中,先使用getOriginalFilename()获取原始文件名,然后使用lastIndexOf()获取指定字符最后一次出现的位置索引,由此获取其文件格式名"extname",接着将其与随机获取且唯一的uuid进行拼接获得新文件名。是 Spring Framework 提供的用于处理文件上传的接口。中的方法,用于查找指定字符或子字符串在字符串中最后一次出现的位置索引。获取上传文件的原始文件名,然后我们根据文件名的扩展名来判断文件类型或进行文件处理。获取上传文件的输入流,用于读取文件内容。
2023-08-03 22:15:48
4583
原创 “No primary or single unique constructor found for interface java.util.List”问题原因及解决
如果使用了自定义的结果映射(ResultMap),请确保配置正确,并且没有产生冲突。
2023-08-02 16:25:08
14732
1
原创 “Invalid bound statement (not found): com.young.mapper.EmpMapper.list] with root cause“问题原因及解决
其中list是未找到的 SQL 映射语句的 ID。确保文件中正确定义了名为list的 SQL 映射语句,并且该文件的路径在 MyBatis 的配置文件(通常是)中正确引用。如果你在接口中使用了注解@Mapper或者在 Spring 中配置了该 Mapper 接口的扫描,确保它能够被正确扫描并与 XML 映射文件关联起来。另外,确认接口中有声明list方法,并且方法签名与 XML 映射文件中的定义一致。(即要保持名字一致,这篇在前面关于xml配置的文章中有讲)确认。
2023-08-02 16:16:00
886
原创 Spring中的@RequestBody注解
用于将HTTP请求的请求体(Body)内容绑定到方法的参数上。在Web开发中,客户端通常会通过HTTP请求向服务器发送数据,这些数据可以包含在请求的Body中,特别是在POST、PUT等请求方法中。当客户端发送HTTP请求时,请求体中包含了对应的数据,Spring框架会自动将请求体中的数据转换成指定的数据类型,并传递给处理方法的参数。注解允许你将请求体中的数据绑定到Java对象或其他数据类型上,从而在Controller的处理方法中方便地获取和处理请求的数据。注解在方法的参数上声明要绑定的数据类型。
2023-08-01 00:53:13
301
原创 Spring中的@PathVariable注解
用于从URL路径中提取参数值,并将其绑定到方法的参数上。当客户端发送HTTP请求时,URL中可能包含一些占位符(PathVariable),这些占位符是用来传递参数的。当客户端发送HTTP请求时,包含了对应的参数值,Spring框架会自动将这些参数值提取出来,并传递给处理方法的参数。注解的参数名要与URL中的占位符名称一致,才能正确地绑定参数值。注解在方法的参数上声明占位符的名称,并指定要绑定的参数。注解可以将这些参数值提取出来,然后在方法中进行处理。在Controller的处理方法中,使用。
2023-07-31 23:58:56
326
原创 Mapper和DAO层的区别与相似处
DAO和Mapper都是用来实现数据访问层的,只不过DAO是一种设计模式,而Mapper是MyBatis中具体的实现方式。在MyBatis中,Mapper使用XML配置或注解定义SQL语句,通过接口方式供Java代码调用,实现了数据访问的解耦和灵活性。在传统的Java应用中,通常会使用DAO(Data Access Object)模式来处理数据的访问和持久化。DAO和Mapper在目标上是相似的,都是用来处理数据的访问,但它们在具体的实现和用法上有一些区别。
2023-07-31 18:11:22
12464
1
原创 JAVA三层架构中的service层
为了实现Service层的功能,通常将Service定义为一个接口(Service Interface),然后创建一个该接口的实现类(Service Implementation)。Service层是用来封装和处理业务逻辑的组件,它与数据访问层(DAO层)和表现层(Controller层)相互分离,遵循了分层设计的原则,提高了代码的可维护性和可扩展性。Service接口将业务逻辑与具体实现分离,Controller和其他组件可以通过接口进行交互,而不需要关心具体实现。
2023-07-31 18:06:14
2240
原创 Mybatis中的sql片段
MyBatis的SQL片段是一种将SQL语句片段进行抽象和封装的方式,它类似于函数或宏,在MyBatis的XML映射文件中,可以定义SQL片段并在多个SQL语句中重用。SQL片段的使用可以减少重复编写相同SQL代码的工作,提高代码的可维护性和重用性。注意:SQL片段是可以嵌套使用的,你可以在一个SQL片段中引用另一个SQL片段,并将它们组合在一起构建复杂的SQL语句。在上面的例子中,我们定义了一个名为。在上面的例子中,我们定义了一个名为。的SQL片段,它接受一个名为。的SQL片段,其中包含了。
2023-07-30 12:55:22
1883
原创 Mybatis中的动态SQL
根据不同的条件构建出复杂的SQL查询语句,提高了SQL的重用性和灵活性。它允许你根据不同的条件在映射文件中生成不同的SQL语句。通过动态SQL,你可以灵活地构建复杂的查询语句,而不需要编写多个重复的SQL语句。上述例子中,若username为null,那么"username = #{username},"最后的逗号会自动删掉。都不为null,那么查询语句将根据这两个条件拼接成一个复合条件的查询。的条件,用于在查询中查找相应的用户。不为null,则查询语句会根据。都为null,则查询语句会查询。
2023-07-30 12:45:22
102
原创 JAVA的Mybatis框架下xml映射文件配置
在resources下创建文件时,由于无java文件选项,所以直接选directory选项,而命名时不要用点(“.”)来分隔,因为其是目录文件,应用“/”分隔。而xml的约束,可以去“mybatis中文网”→“入门”→下滑找到“探究已映射的 SQL 语句”
2023-07-30 12:24:34
314
原创 Mybatis进行条件查找需要模糊查询时注意事项
由于like模糊匹配,需要在关键字之前和之后加上%,所以那块是一个字符串,而在字符串当中是不能使用#{}的,因为#{}进行预编译后那里会变成一个问号,所以使用${}进行字符拼接,但这样也就会存在性能低、不安全、sql注入等问题。所以可以使用concat('%',#{name},'%')进行连接。
2023-07-30 12:07:29
187
原创 Mybatis进行数据封装时注意事项
由于数据库和实体类的命名规则的不同,数据库命名中间用下划线分隔,而实体类则是采用驼峰规则命名,因此会造成一些封装问题。
2023-07-30 11:54:24
156
原创 “Dependency ‘com.mysql:mysql-connector-j:‘ not found “等无法找到依赖问题解决
"Dependency 'com.mysql:mysql-connector-j:' not found "等无法找到依赖问题解决
2023-07-27 11:37:48
5121
1
原创 力扣每日一题:两数之和 II - 输入有序数组
给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length。另外,根据题目要求,我们假设每个输入只对应唯一的答案,并且不能重复使用相同的元素。,那么我们找到了满足条件的两个数,直接返回它们的下标(需要加1)。,分别指向数组的开头和结尾。
2023-07-08 17:01:24
157
1
原创 MyBatis中的Type interface xxxx.mapper.UserMapper is already known to the MapperRegistry.问题如何解决
这里“加载sql映射文件”的代码会多次注册mapper文件夹下的文件,导致出现该错误,将此行注释掉,这样就不会进行重复配置。在Mybatis的配置文件mybatis-conifg.xml中有。
2023-06-18 16:46:03
452
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人