- 博客(87)
- 收藏
- 关注
原创 HttpClient-正向代理和验签
HttpClientBuilder是阿帕奇的一个http客户端构建类,通过继承构建类可以添加验签,实现统一发送请求的时候携带验签。
2023-11-14 09:56:56
71
原创 post请求的token设置全局变量引用
postmanvar res =JSON.parse(responseBody);//设置环境变量token,供后面接口使用pm.globals.set("token",res.data.info['token']);apipostapt.variables.set("key_token", response.json.data.info.token);
2022-04-02 14:17:39
487
原创 关于接口的入参类共享问题
简介很多公司在写接口入参的时候,会选择采用继承或者是共用一个类,这样的好处很明显,有时候前段需要加字段的时候,后端可能不需要重新在类中加字段,而且一开始开发的时候就省事。但是这样做真的好吗?共享类的问题最近做一个需求,需求内容难度一般,但是看了原来做这块的代码发现存在非常复杂的逻辑,由于第一次远程办公,各方面沟通比较慢,所以一开始无法获取到这个接口的请求参数,所以只能直接看代码。代码存在多处使用BeanUtils.copyProperties,接口入参类的字段总共多达三十多个,在这个情况下去检查一共
2022-03-17 13:52:14
372
1
原创 源码解读-oauther2-客户端信息配置
发现问题在配置客户端信息的时候,打算采用configure方法配置,代码如下: //自定义模式 JdbcClientDetailsServiceBuilder jdbcClientDetailsServiceBuilder = new JdbcClientDetailsServiceBuilder().dataSource(dataSource).passwordEncoder(passwordEncoder); clients.configure(jdbc
2022-02-23 15:27:13
1509
原创 项目新增mybatis-plus
依赖<!-- mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.baomido
2022-02-11 16:53:49
721
原创 java-mybatis注解-入参校验
mybatis-plus注解@TableId描述:主键注解属性类型必须指定默认值描述valueString否“”主键字段名typeEnum否IdType.NONE主键类型IdType值描述AUTO数据库自增INPUT自行输入ID_WORKER分布式全局唯一ID 长整型类型UUID32位UUID字符串NONE无状态ID_WORKER_STR分布式全局唯一ID 字符串类型@Ta
2021-11-15 16:01:26
1251
原创 代码优化之非核心代码的抽取问题
代码优化之非核心代码的抽取问题背景为什么需要代码抽取非核心代码随着版本的迭代和不同开发人员对接口的修改,通常以不改动老代码为原则进行微调,随着微调的积累,就逐渐产生非核心代码没有得到归纳梳理的情况。非核心代码对原业务代码的影响1,如果controller层出现非常大篇幅的逻辑判断,导致controller类代码行数非常大,定位问题的时候需要从接口一直往下寻找对应的service调用2,如果是service出现大篇幅的逻辑判断,很容易跟原来的业务逻辑混淆,在定位的问题的时候,需要仔细阅读,另外在新
2021-10-29 16:16:33
282
原创 java-json格式的转换
背景当出现前端的格式和后端的格式不一致的时候,就可以使用格式转换,比如精度的不同,比如时间和时间戳,这个时候就需要考虑使用json序列化使用实体类@Datapublic class AA { private Integer aa; @JsonSerialize(using = JsonFormatDateToLong.class) private Date now;}序列化继承类public class JsonFormatDateToLong extends J
2021-10-11 15:07:43
136
原创 java-idea-sonar
文章目录sonar服务器sonaridea的sonarsonar代码检查方法复杂度问题比较的要求sonar代码质量管理服务器sonar有专业的管理页面,对git上的代码进行扫描,实现对项目的整体分析,sonar的问题标注点比较清晰idea的sonar以前安装过发现要使用到服务器地址,现在安装发现不需要服务器的sonar支持,可能是升级了吧,安装过程容易失败,网上也有对应的解决方案sonar代码检查方法复杂度问题这个很有学习价值,看下面的官方解释https://www.sonarsourc
2021-09-30 11:09:31
301
原创 jdk1.8-optional的用法
optionaloptional可以防止null异常错误用法 Optional<Integer> valuationWay = Optional.ofNullable(vo.getValuationWay()); if (valuationWay.isPresent()) { return valuationWay.get(); }正确用法Optional容器先看看获取容器的几个函数 /** * Constructs an instance
2021-09-23 20:09:09
380
原创 java-Excel导入导出
参考:https://www.e-learn.cn/topic/3149208导入表单实体package com.jinyafu.custom.common.dto.manage.request.wage;import cn.afterturn.easypoi.excel.annotation.Excel;import lombok.Data;import java.io.Serializable;import java.math.BigDecimal;@Datapublic clas
2021-09-17 09:45:39
211
原创 java-idea环境变量,启动配置
server-addr=10.88.130.69:8848,10.88.130.97:8848;group=zfj;spring.approfiles.deactive=dev
2021-09-16 19:00:57
345
原创 显示精度问题-double的科学计数法和bigdicemal的精度丢失问题
读取excel的数据下面是读取excel的数字问题1,如果采用DecimalFormat(“0.00”);控制,导致的问题很明显,所有的数据都是两位数的精度2,String.valueOf(cell.getNumericCellValue());直接采用了double的数据,16位会出现科学技术法3,BigDecimal(cell.getNumericCellValue());采用double,double精度会丢失4,BigDecimal(Double.toString(cell.getNume
2021-09-10 11:04:46
718
原创 redis-jedis-热爱与分享
jedis方法菜鸟教程:https://www.runoob.com/redis/redis-keys.html //----------------------------------------------------key-------------------------------------------------------------- /** * 删除多个key,如果key不存在,不做任何操作,最终返回的是删除的个数。 * * Remo
2021-09-09 15:18:56
248
原创 java-并行-stream().parallel()-多线程并行任务ForkJoinTask-forkjoin取代多线程的等待
文章目录parallel并行参考:https://blog.csdn.net/weixin_38106322/article/details/107549552parallel并行list.stream().parallel().forEach(System.out::println);// 查看到对应的接口S parallel();// 查看对应的管道实现,sourceStage.parallel = true;对流进行标记 @Override @SuppressWarni
2021-09-08 17:54:05
2954
原创 java-接口的default-大接口的拆分
文章目录大接口拆分使用场景接口实现类1实现类2实现类3路由大接口拆分使用场景redis不同数据类型拥有非常多的实现方法通过不同的实现类对方法进行拆分接口接口都是default方法public interface UserService { default String getName() { return null; } default String getAge() { return null; } default
2021-09-08 17:30:40
247
原创 es-es的字段修改
es的字段属性修改在存在数据的情况下,无法直接修改字段,所以考虑搬数据方案1:搬迁数据导新索引-》删除原来索引或者对原来的索引进行修改-》删除的情况下进行创建索引-》将原来的数据搬迁到新索引方案2搬迁数据导新索引-》删除原来索引-》启动项目-》将原来的数据搬迁到新索引这里采用方案2,搬迁数据导新索引post _reindex{“source”: {“index”: “custom_resource”},“dest”: {“index”: “custom_resource1”,
2021-09-06 17:22:19
1246
原创 mysql-从大小表顺序问题探究mysql联表实现的原理
文章目录创建两个表分别插入数据场景多表联表或者联表后作为中间表等联表不加筛选条件联表加大表筛选条件联表加大表筛选条件,返回小表的值联表加大表筛选条件,返回大表的值联表加小表筛选条件联表加小表筛选条件,返回大表的值联表加小表筛选条件,返回小表的值创建两个表表bigCREATE TABLE `big` ( `id` int(11) NOT NULL AUTO_INCREMENT, `num` int(11) DEFAULT NULL, `name` varchar(255) COLLATE u
2021-09-06 13:57:16
1120
原创 读书笔记-沟通的方法
目录沟通的方法1,全力以赴的沟通,从倾听开始2,理解信息背后的人3,怎样让不友好的人好好说话4,怎样让对方无法按拒绝你沟通的方法1,全力以赴的沟通,从倾听开始如果领导来电话问现在忙吗?考察工作情况呢还是安排新工作?如果说忙,可能错失了一个机会如果说不忙,是不是工作不饱和这个应该不回答,直接问领导,您请说。相亲对象问你互联网加班一定很辛苦吧对方不是问你工作情况,而是想知道你是否时间投入亲密关系。三要素:情绪、事实和期待举例:a,领导总是让我加班是情绪,而不是表述事实b,你为什么总
2021-09-05 18:30:01
710
原创 mysql的存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert`()BEGIN #Routine body goes here... DECLARE i int DEFAULT 1; WHILE i<100000 DO INSERT INTO `big`(num,`name`,`code`) VALUE(i,'big',i); set i=i+1;END WHILE;END
2021-09-03 09:05:31
54
原创 关于性能的讨论
这里只从数据层次讨论1,数据库加索引优化或者代码层次减少数据库的调用(mybatis嵌套集群查找等)、优化sql2,读写分离3,分库分表4,数据库集群5,增加redis6,采用mget、pipeline批处理
2021-09-02 01:04:15
95
原创 java-集合遍历出现异常的问题-CopyOnWriteArrayList
CopyOnWriteArrayList传统的for遍历过程中,不能对集合进行修改操作,容易导致异常。jdk7引入了CopyOnWriteArrayList,查找的时候没有加锁,如果是修改操作,就会被加锁,然后对原来的数据做一个副本,修改结束后对原来的数据进行替换。使用在这里插入代码片...
2021-08-30 14:08:43
647
原创 关系表数据同步-es
es因为字段很灵活,搜索能实现分词,字段可以是list基本数据类型的数组,所以在同步数据的时候,往往会出现在主业务是传递list,保存的时候会变成了对应的关系表,所以会出现传递的数据变成了关系表和对应主表数据,这个时候就变成了传递多个数据。优化:采用提前类内聚方法,对参数进行提前的处理,然后只需要传递一个对象即可。...
2021-08-26 11:49:51
199
原创 数组拼接成一个使用逗号分隔的字符串
当拼接只有一个元素的时候,就不会进行拼接分隔符号 public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("111"); list.add("222"); list.add("333"); System.out.println(list.toString());
2021-08-24 16:03:05
394
原创 Python-基础
下载python包下载Python 3版本(注意第二版本和第三版本不兼容,第三版本的可用插件会比较少)windows版本:https://www.python.org/downloads/windows/目前最高版本是3.9.6(2021年8月16日)下载编辑器这里采用 pycharmhttps://www.jetbrains.com/pycharm/download/#section=windows版本分专业版本和社区版本,这里只要下载社区版本即可基本语法具体语法可用查阅:https:/
2021-08-18 21:10:37
46
原创 java-日志管理-Log4j2
Log4j已经不更新了,Log4j 2 包含基于 LMAX Disruptor 库的下一代异步记录器。在多线程场景中,异步 Logger的吞吐量比 Log4j 1.x 和 Logback 高 18 倍,延迟低几个数量级,Log4j 2是未来使用的趋势。官网:https://logging.apache.org/log4j/2.x/...
2021-08-18 17:49:50
93
原创 java-关于随机数的问题
jdk1.8提供了更加高效的随机数算法,但是出于专业,我们不能就认为获取的数据就不会跟其他的随机数重复了,除非不关心是否会与其他随机数重复,比如文件的下载进行重命名。随机数的命名参考对于随机数的命名,最佳的设计就是时间戳加序列化,但是因为时间戳比较长,很多时候不被允许,所以会改用年月日时分秒格式,或者直接采用年月日的方式。。比如redis对stream中生成的id进行拼接时候,按照微妙级别的时间戳+序列号,当时间相同的时候,序列号进行增加,这里需要注意redis操作是单线程的,虽然redis可以f
2021-08-17 15:52:53
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人