随笔分类 - 项目
摘要:前言 我们可以使用 explain 命令来查看 SQL 语句的执行计划,从而帮助我们优化慢查询。 使用 注意:使用的 mysql 版本为 8.0.28 数据准备 CREATE TABLE `tb_product2` ( `id` bigint NOT NULL AUTO_INCREMENT COMM
阅读全文
摘要:前言 随着企业内部各种开源平台越来越多,例如:gitlab、Jenkins、JumpServer、Rancher等,账号维护变成一件繁琐的事情,这时需要一个统一账号维护的平台,每人只需一个账号,在公司内部平台通用。而大多数开源平台都支持 LDAP,因此只要搭建好 LDAP 服务,将企业内部这些平台都
阅读全文
摘要:前言 在使用 MySQL 时,若表中含自增字段(auto_increment 类型),则向表中 insert 一条记录后,可以调用 last_insert_id() 来获得最近 insert 的那行记录的自增字段值。但事实上,使用 last_insert_id() 时有很多注意事项,很容易踩到坑。
阅读全文
摘要:前言 replace into 跟 insert into 功能类似,不同点在于:replace into 首先尝试插入数据到表中 如果发现表中已经有相同的数据(根据主键或者唯一索引判断)则先删除原来的数据,然后插入新的。 否则,直接插入新数据。 注意:插入数据的表必须有主键或者是唯一索引!否则的话
阅读全文
摘要:前言 OpenAPI阶段的Swagger也被称为Swagger 3.0。在Swagger 2.0后,Swagger规范正式更名为OpenAPI规范,并且根据OpenAPI规范的版本号进行了更新。因此,Swagger 3.0对应的就是OpenAPI 3.0版本,它是Swagger在OpenAPI阶段推
阅读全文
摘要:问题1 import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestLogger { private static Logger logger = LoggerFactory.getLogger(TestLogg
阅读全文
摘要:测试controller @RestController @RequestMapping("/test") @Slf4j public class TestController { @GetMapping("/testStringParamTrim") public TestObjectInfo t
阅读全文
摘要:前言 BeanPostProcessor 是 Spring 提供的一种扩展机制,可以让我们在 bean 初始化前后做一些额外的操作,Spring 中的 @Async,@Scheduled,@RabbitHandler 等注解的底层实现都是 BeanPostProcessor 在起作用,如 Rabbi
阅读全文
摘要:代码示例 @Configuration public class AspectConfig { @Aspect @Component @Order(Ordered.HIGHEST_PRECEDENCE) public static class LogAspect { @Pointcut("execu
阅读全文
摘要:问题描述 在项目中有一个 MySQL 数据库归档程序,每天会定时跑,在归档逻辑中,会涉及到对大表的查询(根据创建时间查询,它是索引),这个过程中会锁数据(行级锁),然后我们插入新的数据就会报错:获取锁超时 Caused by: com.mysql.cj.jdbc.exceptions.MySQLTr
阅读全文
摘要:问题描述 支付宝互联网地址为 https://openapi.alipay.com/gateway.do,专线相比于互联网地址速度更快,更加稳定。这里我们假设专线地址为 https://xxx.xxx.xxx.xxx:443/gateway.do。 我们通过支付宝的 SDK 来访问支付宝专线地址,结
阅读全文
摘要:问题描述 boostrap.yml 配置如下 spring: application: name: cnblogs cloud: nacos: config: server-addr: http://ip:8848 namespace: d8b0df04-aa58-4a5b-b582-7d133b9
阅读全文
摘要:前言 在项目最好不要通过程序修改 nacos 配置,这样比较危险,如果代码有问题或者将其他的配置给覆盖了,可能会造成生产事故。需要频繁修改的配置信息最好存储到数据库。 修改 yaml 类型的配置 bootstrap.yaml 配置 spring: application: name: cnblogs
阅读全文
摘要:问题描述 linux 服务器上运行了一个 docker 容器,在运行 cp 命令时报错 docker cp redis.conf myadmin_redis:/data/redis.conf 将服务器上的文件拷贝到 docker 容器内部时,报以下错误 Error response from dae
阅读全文
摘要:Uber-jar 在maven的一些文档中我们会发现 "uber-jar" 这个术语,许多人看到后感到困惑。其实在很多编程语言中会把 super 叫做 uber (因为suber可能是关键字), 这是上世纪80年代开始流行的,比如管 superman 叫 uberman。所以 uber-jar 从字
阅读全文
摘要:前言 MySQL 在 5.1.X 版本之后增加了对 multi-host 的支持,我们可以使用它来实现读写分离。 正常的 jdbc 连接格式为 jdbc:mysql://ip:3306/testdb?characterEncoding=UTF-8 multi-host 的 jdbc 连接格式为 jd
阅读全文
摘要:前言 JMeter 作为浏览器与web服务器之间的代理,可以捕获浏览器的请求和 web 服务器的响应,通过线程来模拟真实用户对 web 服务器的访问压力。基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果。 使用 下载 下载地址
阅读全文
摘要:Tomcat内部结构 内部可以分为两部分:HTTP服务器 + Servlet容器。 这里以内嵌Tomcat为例,启动类为Tomcat Tomcat里包含一个Server,类型为StandardServer。 StandardServer中包含对个service,类型为StandardService,
阅读全文
摘要:使用 引入依赖 <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> <version>2.0.9</version> </dependency> <dependen
阅读全文
摘要:使用 引入依赖 <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>3.8.0</version> </dependency> 代码实现 import org.mocki
阅读全文