技巧总结
linux查找进程
1234567# 根据端口号查找进程ss -tulnp | grep :端口号lsof -i :端口号#g根据进程名查找进程ps aux | grep 进程名
fastjson序列化时不忽略为空的字段
1234//将为空的字段显示为空字符串JSON.toJSONString(changeEvent, SerializerFeature.WriteNullStringAsEmpty);//将为空的字段显示为nullJSON.toJSONString(changeEvent, SerializerFeature.WriteMapNullValue)
nginx正向代理
123456789101112server { listen 8888; # 选择一个合适的端口号,此处为 8888 server_name localhost; # 可以是本机的 IP 地址或 localhost location / { resolver 8.8.8.8; # 使用 Google 的 DNS 服务器,可以根据需要更改 ...
《软件设计师》考点总结
为了方便背诵,某些概念做了隐藏,点击即可显示
查看
CPU主要组成
运算单元:
包括 ALU、FPU。
控制单元:
包括 指令控制器,时序控制器,总线控制器,中断控制器。
存储单元:
包括 通用寄存器,状态寄存器,cache。
多态
参数多态
应用广泛、最纯的多态。
包含多态
同样的操作可用于一个类型及其子类型。包含多态一般需要进行运行时的类型检查。包含多态在许多语言中都存在,最常见的例子就是子类型化,即一个类型是另外一个类型的子类型。
查看
(类的继承和接口的实现)
强制多态:
编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。
查看
(将一个对象强制转换为另一个对象)
过载多态:
同一个名(操作符﹑函数名)在不同的上下文中有不同的类型。 目前软设考查比较多的是过载多态。
查看
(相同名称在不同上下文中有不同含义)
软件测试三个阶段
单元测试
白盒测试
测试来源来源于详细设计
集成测试 (模块间的接口测试)
黑盒测 ...
java表达式解析器(支持自定义函数以及操作符)
说明
下面的工具类适用于类似这种表达式 VAR(‘001d’)+VAR(‘test1’) 的解析,需要自定义函数并且函数还附带字符串等非数字类型的参数
执行逻辑
接受一个需要计算的表达式以及计算表达式所需要的参数信息(参数可空),获取传入参数的方式FormalAnalysis.param.get()
将函数中的字符串参数替换为纯数字参数 VAR(‘001d’)+VAR(‘test1’) -> VAR(1)+VAR(2),并且记录改对应关系,在计算是自定替换为原始字符串参数
创建解析器Expression
使用SpringBoot的ApplicationContext获取对应的自定义函数和操作符,并添加到所创建的解析器中
优化
工具类中使用的都是线程变量ThreadLocal,确保每个线程的参数以及映射信息都是独立的,并且在每次公式计算完毕进行清空
公式中还定义了搜集异常信息的list变量warnContent,如果想保留异常信息调用FormalAnalysis.warnContent.get().add(异常信息) 进行存 ...
IDEA快捷键大全
Editing/编辑
快捷键
介绍
Ctrl + Space
Basic code completion (the name of any class, method or variable)基础代码补全,默认在 Windows 系统上被输入法占用,需要进行修改,建议修改为 Ctrl + 逗号
Ctrl + Shift + Space
Smart code completion (filters the list of methods and variables by expected type)智能代码提示
Ctrl + Shift + Enter
Complete statement(自动结束代码,行末自动添加分号)
Ctrl + P
Parameter info (within method call arguments)方法参数提示显示
Ctrl + Q
Quick documentation lookup(光标所在的变量 / 类名 / 方法名等上面(也可以在提示补充的时候按),显示文档内容)
Shift + F1
Exte ...
生成一个随机日期
1234567891011public static Date randomTime(Date startTime, Date endTime) { // 获取时间区间的起始毫秒值和结束毫秒值 long startMillis = startTime.getTime(); long endMillis = endTime.getTime(); // 使用 ThreadLocalRandom 在区间内生成一个随机的毫秒值 long randomMillis = ThreadLocalRandom.current().nextLong(startMillis, endMillis); // 返回一个新的随机时间 return new Date(randomMillis);}
工具类比较简单,这里就不多介绍了,这篇文章主要介绍一下java生成随机数的API
JAVA生成随机数API
1. java.util.Random
Random 是 Java 中最常用的随机数生成器,属于伪随机数生成器(PRNG)。Ran ...
根据输入的时间以及日期间隔,输出每天的排班记录
假如你有这样一个需求:
有一个排班信息,比如:白班(08:00:00 - 20:00:00),夜班(20:00:00 - 08:00:00)
我想获取到某个日期范围内的排班信息
那么就可以用这个工具类来实现
新建两个实体
ShiftType
12345678910111213@Data@NoArgsConstructor@AllArgsConstructorpublic class ShiftType { private LocalTime start; private LocalTime end; private String shiftName; @Override public String toString() { return shiftName + ":" + start.toString() + " - " + end.toString(); }}
Shift
12345678910 ...
作为Feign的调用者,如何配置一个全局的Header呢?
前言:
因为项目遇到了这个问题,就是作为Feign 的调用者,应该如何传递认证信息,因为是新项目,所以刚开始开发没有考虑这些,之后才发现会有这个问题
刚开始本来准备直接给每个Feign 方法添加一个用于认证的参数,但是发现这样改动量太大了,然后就开始查找资料
功夫不负有心人,还真被我找到了,就是今天要介绍的Feign 中用于构建和修改HTTP请求的一个核心类RequestTemplate
在我项目中的使用
创建一个FeignConfig的配置类,然后把下面的信息复制到类中即可
因为我目前的项目中只是用于添加一个Header参数,所以用的比较简单,就只是下面的几行代码
1234567891011121314151617/ * feign全局处理器,自动添加header参数,无需手动传递租户信息 * * @Author bo.chen * @Date 2024/8/12 */@Configurationpublic class FeignConfig { @Bean public RequestI ...
脚本说明
将下面代码内容放到一个以bat 结尾的文件中
运行之前需要在脚本的同级目录创建一个file.txt 文件,里面放你要下载的文件链接,一行一个
执行成功之后,文件会被下载到downloaded_file 文件夹中
12345678910111213141516171819202122232425262728293031@echo offsetlocal enabledelayedexpansionREM 设置包含URL列表的文件名set "inputFile=file.txt"REM 设置下载目录set "downloadDir=downloaded_file"REM 检查并创建下载目录if not exist "%downloadDir%" ( mkdir "%downloadDir%")REM 读取文件并下载图片for /f "delims=" %%i in (%inputFile%) do ( REM 获取URL set "url=%%i& ...
nacos使用达梦数据库更新配置时报错问题解决
有两个方案
配置数据库插件
修改源码
这篇文章主要介绍第二种,因为第一种没研究明白🐶
报错信息
caused: PreparedStatementCallback;
违反表[CONFIG_INFO]唯一性约束条件[UK_CONFIGINFO_DATAGROUPTENANT];
nested exception is dm.jdbc.driver.DMException:
违反表[CONFIG_INFO]唯一性约束条件[UK_CONFIGINFO_DATAGROUPTENANT];
caused: 违反表[CONFIG_INFO]唯一性约束条件[UK_CONFIGINFO_DATAGROUPTENANT];
方案一
方案一(未实现)
简单说一下方案一官方也提供了数据库插件的实现接口,下面是一个达梦数据库的实现插件 引用站外地址 nacos-datasource-p ...
技术教程
未读springboot日志配置示例
介绍
springboot默认使用的是logback日志框架,有两种命名方式
logback.xml
logback-spring.xml
区别就是logback-spring.xml由Spring加载,这意味着它可以使用Spring的环境变量、属性占位符以及一些Spring Boot特有的功能。
示例说明
配置文件说明
配置项
APP_NAME不指定默认从配置文件读取
logger标签的name属性需要你指定你的mapper所在的包名,否则不会打印sql语句
一共配置了四个输出方式
控制台:没什么好说的就是输出到控制台
info.log:和控制台输出的内容一样,只不过是输出到文件
error.log:只记录error级别的日志
sql.log:只记录sql语句以及参数信息
日志滚动方式
到达00:00:00自动切割,并且新建一个文件夹存储
一个日志最大10MB
最长保留一个月(sql日志只保留两天)
超过10G自动删除(sql日志超过2G自动删除)
知识点
123456# mybatis-plus的默认 ...