- 博客(85)
- 收藏
- 关注
原创 chales 重写/断点/映射/手机代理/其他主机代理
chales 安装和代理配置/手机代理配置/电脑代理配置Charles Rewrite重写(详解!必懂系列)
2023-09-17 22:11:21 808
原创 Spring命名空间
Spring 的 XML 配置文件,配置项都在 标签中,如果自定义一个标签,同样命名为 ,便造成冲突,XML 解析器无法分辨这些冲突的命名。在 开始标签中添加命名空间,实际上 XML 解析器会。,以区别其他的标签,避免了命名的冲突。
2023-09-16 11:39:41 265
原创 AOP全局异常处理
由于Controller可能接收到来自业务层、数据层、数据库抛出的异常,因此需要使用AOP思想,进行全局异常处理,异常可通过调试获得。总结:通过两个注解实现全局异常处理。
2023-09-14 21:59:13 428
原创 SpringSecurity基本使用,结合Mybatis访问数据库
创建UserDetailsService:实现一个自定义的UserDetailsService来从数据库中加载用户信息。确保你的UserDetailsService实现中返回经过加密的密码。在Spring Security的配置中,我们指定了登录页面的路径(如/login)。启用和运行应用程序:确保你的Spring Boot应用程序已启用并运行,然后访问登录页面并测试身份验证功能。在上面的代码中,你需要根据数据库中的用户模型来填充UserDetails对象的角色和权限信息。
2023-09-14 20:38:56 379
原创 SpringCache和Redis结合基本使用
现在,当您访问/product/{id}端点时,会触发getProductById方法,结果将被缓存到Redis中,以便下一次访问相同的id时可以从缓存中获取数据,而不是再次执行数据库查询。Spring Cache和Redis结合使用是一种强大的缓存方案,它允许您将应用程序中的数据缓存在Redis中,以提高性能和减轻数据库负载。在上述示例中,我们使用@Cacheable注解来标记getProductById方法,它会缓存方法的结果,使用products作为缓存的名称,并以id作为缓存的键。
2023-09-09 15:37:56 563
原创 cookie、session、Token区别
会话标识符:每个会话通常都有一个唯一的会话标识符(Session ID),它可以存储在用户的Cookie中,也可以作为URL参数传递。安全性相关信息:Session还可用于存储与安全性相关的信息,例如CSRF令牌(Cross-Site Request Forgery)或防止会话劫持的措施。用户身份验证信息:Session通常用于存储用户的身份验证状态,以便确定用户是否已登录或谁在访问应用程序。登录时间和活动状态:Session可以用于跟踪用户的登录时间和活动状态,以便自动注销不活动的用户或实施安全措施。
2023-09-09 14:32:58 184
原创 SpringBoot配置文件加载顺序
Spring Boot 启动时,会自动加载 JAR 包内部及 JAR 包所在目录指定位置的配置文件(Properties 文件、YAML 文件),下图中展示了 Spring Boot 自动加载的配置文件的位置及其加载顺序,同一位置下,Properties 文件优先级高于 YAML 文件。
2023-09-08 14:07:03 149
原创 在SpringBoot框架下,接口有几个实现类,在不改变任何源码的情况下,SpringBoot怎么知道给接口注入哪个实现类的依赖呢?
1.使用条件注解(如@ConditionalOnProperty)来根据应用程序的配置动态选择要注入的实现类是一种非常灵活的方法,它允许你根据配置文件中的属性值来决定要使用的实现类。首先,在实现类上使用@Component或@Service等注解进行标记,然后在依赖注入点使用@Qualifier注解来指定要注入的实现类的名称。在这个示例中,MyServiceConsumer通过自动注入MyService来获取实现类,根据配置中的属性值,将注入MyServiceImpl1或MyServiceImpl2。
2023-09-08 13:44:45 1216
原创 Java虚拟机反射机制和动态代理
获取类信息: 使用反射可以获取类的信息,如类名、父类、接口、构造函数、方法、字段等。创建对象: 使用反射可以在运行时动态创建对象。调用方法: 可以使用反射来调用类的方法。访问字段: 可以使用反射来访问类的字段。泛型信息: 反射还允许你获取泛型类型信息。
2023-09-07 18:50:54 180
原创 递归/回溯/动规
你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家,就不能再偷第二家;如果偷了第二家,那么就不能偷第一家和第三家。给定一个整数数组nums,数组中的元素表示每个房间存有的现金数额,请你计算在不被发现的前提下最多的偷窃金额。
2023-09-04 11:22:12 118
原创 局部代码重复执行
b. 如果 bi 已经在集合 used 中,就将 bi 增加 i,直到 bi 不在 used 中为止,以保证 bi 不会重复。2.对于任意 i ∈[1, n],满足 ( ai+ bi ) mod i = 0。a. 计算当前位置的 bi = i - a[i-1],确保 bi 大于等于 1。3.对于任意i ∈[1, n],满足 1 ≤bi ≤10^9。第二行输入n个整数,第i个为 ai (1 ≤ai≤106)4.对于任意1≤i<j≤n,满足 bi≠ bj。第—行输入一个整数 n (1 ≤n ≤105)
2023-08-27 15:12:24 191
原创 m-接口自动化-快速入门
package com.sankuai.sjst.qa.coreservice.api.test.thrift.cos.customer;import com.alibaba.fastjson.JSONObject;import com.sankuai.meituan.zcm.component.customer.thrift.model.*;import com.sankuai.meituan.zcm.component.customer.thrift.model.TBoolResult;
2023-08-03 11:53:42 97
原创 【测试要点】
数据构造:避免脏数据最有效的方式,自己通过接口构造数据。界面测试:界面美观,字段齐全,内容准确,默认回显正确。功能测试:通过等价类划分和边界值分析,保证最基本的功能正确。对于状态和变化类指标,联动测试最为重要。性能测试:批量增/删/改/查,高性能,高并发重点测试。
2023-06-30 10:10:36 73
原创 【Selenium】UI自动化-环境搭建
2 引入依赖3 编写脚本4 常见问题https://blog.csdn.net/weixin_42250835/article/details/125146145https://blog.csdn.net/ww2011/article/details/126561333
2023-05-31 14:47:11 90
原创 2023年实习生应聘面经
JAVA虚拟机反射机制+双亲委派+动态代理机制GC垃圾回收机制HashMap+ConcurrentHashMap锁机制线程实现:Tread+Runable+Callable+线程池进程死锁:预防,避免,检测,解除数据结构:快速排序+Hash操作系统:进程通信方式,进程与线程的区别计算机网络:TCP,UDP区别,TCP可靠性传输:滑动窗口+流量控制(慢启动,拥塞避免,超时重传/快重传,->慢启动/快恢复,拥塞避免/拥塞避免)HTTP/HTTPS->SSL/TLS协议HTTP请求
2023-04-23 19:05:24 414
原创 淘宝订单页面测试
1、界面测试页面:页面是否美观,字体大小&样式是否合理。布局:布局是否合理,重点是否突出。控件:控件是否精准合理。2、功能测试输入框:长度:搜索关键字过短和过长是否能搜索。类型:有无特殊字符能否搜正常搜索到物品;输入中/英文是否可搜索。规则:不输入任何东西点击搜索,能否跳转(默认搜索搜索框中物品);反复输入相同的搜索词8次以上,处理结果是否依然正确。链接:所出现的所有链接可不可以正确跳转,像天猫,聚划算。相机:点击搜索框的相机会不会跳到
2023-04-16 22:39:30 1204
原创 系统应满足的性能指标计算及系统性能衡量
关于秒杀系统的压力测试计算正常业务操作(稳定性测试)的并发量计算峰值业务操作(压力测试)的并发量如何进行并发数计算(稳定性测试和压力测试)
2023-04-16 12:29:50 605
原创 SQL对表内数据增删改查
增insert into students (姓名,性别,出生日期) values (‘王伟华’,‘男’,‘1983/6/15’);insert into addressList (‘姓名’,‘地址’,‘电子邮件’) select name,address,email from students;增delete from <表名> [where <删除条件>]delete from students where name=‘王伟华’;语法:truncat
2023-04-13 19:41:26 122
原创 性能出现拐点的原因
jmeter自身性能瓶颈:新生成的实例的速度远大于回收的速度,导致实例数的不断增加。第二个原因就是程序中存在内存泄漏,有部分实例生成后无法释放。有可能是服务器对ip的访问量做了限流,防止爬虫有可能是带宽,内存,cpu等等资源的限制。
2023-04-13 19:27:02 138
原创 单元测试、回归测试、冒烟测试
单元测试单元测试,是指对软件中最小可测试单元进行检查和验证。“单元”的大小或者范围,并没有一个明确的标准,可以是函数、类、方法、功能模块、子系统等。单元测试的实现方式包括:人工静态检查、动态执行跟踪。回归测试你修复一个BUG以后,把之前的测试用例再次应用到修复后的版本上进行测试。一个新版本开发好后,且冒烟测试通过后,此时可以先使用上一个版本的测试用例对新版本进行测试,看是否有BUG。冒烟测试冒烟测试主要是在新版本发布后,对其最基本的功能进行测试,保证最基本的流程能走通,以便进行后续
2023-04-13 17:51:18 115
原创 团团面试经验
举个例子:某个黑客故意制造一些非法的 key 发起大量请求,导致大量请求落到数据库,结果数据库上也没有查到对应的数据。当然,热点数据 ,该数据 存在于数据库中,但不存在于缓存中(通常是因为缓存中的那份数据已经过期),那么会发生缓存击穿。最常用的tail -f filename,可以实时看滚动查看日志。如果是缓存和数据库中都不存在,那么就会发生缓存穿透。目录的操作命令(增删改查)文件的操作命令(增删改查)
2023-04-11 23:10:58 414
原创 put、post、get区别
GET参数通过URL传递,POST放在Request body中。GET 查询页面,跳转页面PUT请求(幂等方法):如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)PUT修改员工Post请求(非幂等方法):后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源)POST添加员工
2023-04-11 18:33:47 254
原创 Redis和Mysql有什么区别
1、从类型上来说,mysql是关系型数据库,redis是缓存数据库。2、mysql用于持久化的存储数据到硬盘,功能强大,但是速度较慢。redis用于存储使用较为频繁的数据到缓存中,读取速度快。3、mysql和redis因为需求的不同,一般都是配合使用。
2023-04-11 18:14:27 84
原创 地址栏中输入URL之后的流程及涉及协议
1、解析URL:2、缓存判断:3、DNS解析获取IP地址:4、获取MAC地址:5、TCP三次握手:6、HTTPS握手:7、服务器返回数据8、页面渲染9、TCP四次挥手:
2023-04-11 18:00:25 701
原创 java虚拟机反射机制
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。
2023-04-11 11:28:17 498
原创 Redis一致性问题
一致性强一致性:写进去的数据是什么,读出来的数据就是什么。最终一致性(弱一致性一个特例):只保证数据写入成功后,在某个时间点后数据会达到一致。
2023-04-10 23:32:14 363
原创 面向问题:简历-自我介绍-面试
多个进程/线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于进程/线程被无限期地阻塞,因此程序不可能正常终止。
2023-04-06 22:17:14 136
原创 数据驱动案例
JSON文件读写读取JSON文件with open(‘data.json’, encoding=‘UTF-8’) as f :data = json.load(f) # 返回的数据类型为字典或列表写入JSON文件param = {‘name’: ‘tom’, ‘age’: 20}with open(‘data2.json’, ‘w’, encoding=‘UTF-8’) as f:json.dump(param, f)
2023-04-02 20:12:21 322
原创 python基础知识
(1)python数据类型不可变数据类型(4 个):Number(数字:int/float/complex)、Boolean(布尔)、String(字符串)、Tuple(元组);可变数据类型(3 个):List(列表)、Dictionary(字典)、Set(集合)。(2)python数据类型增删改查List(列表)增::append、extend、 insert删::pop、remove、clear、关键字del改::list[idex]=newValue查::list.index(
2023-03-28 18:03:47 374
原创 电梯业务场景测试
电梯的测试用例主要包括:界面测试,功能测试,安全测试,性能测试,易用性测试,兼容性测试六个方面。界面测试电梯形状大小是否符合设计要求。电梯按键形状大小是否符合设计要求。电梯粘贴物是否符合设计要求。功能测试按键功能:内外部按键是否能正常按下和回退,键背后灯光是否能正常亮起和熄灭。外部底层按键只能向上,顶层这只能向下,中间可上可下。内部开门按键运行期间不能开门,向上运行不能生效向下按键,向下运行不能生效向上按键。报警键/电话键:是否能正常按下和回退,键背后灯光是否能正常亮起和
2023-03-28 14:32:15 384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人