![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
个人
给自己做减法
这个作者很懒,什么都没留下…
展开
-
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 · 496 阅读 · 0 评论 -
关于接口的入参类共享问题
简介很多公司在写接口入参的时候,会选择采用继承或者是共用一个类,这样的好处很明显,有时候前段需要加字段的时候,后端可能不需要重新在类中加字段,而且一开始开发的时候就省事。但是这样做真的好吗?共享类的问题最近做一个需求,需求内容难度一般,但是看了原来做这块的代码发现存在非常复杂的逻辑,由于第一次远程办公,各方面沟通比较慢,所以一开始无法获取到这个接口的请求参数,所以只能直接看代码。代码存在多处使用BeanUtils.copyProperties,接口入参类的字段总共多达三十多个,在这个情况下去检查一共原创 2022-03-17 13:52:14 · 382 阅读 · 1 评论 -
项目新增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 · 725 阅读 · 0 评论 -
go的国际化处理
go语言原创 2022-01-18 09:31:18 · 642 阅读 · 0 评论 -
BigDecimal的大误区
BigDecimal原创 2022-01-18 09:30:53 · 84 阅读 · 0 评论 -
idea好用的插件
idea插件原创 2021-11-25 14:21:01 · 59 阅读 · 0 评论 -
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 · 1277 阅读 · 0 评论 -
代码优化之非核心代码的抽取问题
代码优化之非核心代码的抽取问题背景为什么需要代码抽取非核心代码随着版本的迭代和不同开发人员对接口的修改,通常以不改动老代码为原则进行微调,随着微调的积累,就逐渐产生非核心代码没有得到归纳梳理的情况。非核心代码对原业务代码的影响1,如果controller层出现非常大篇幅的逻辑判断,导致controller类代码行数非常大,定位问题的时候需要从接口一直往下寻找对应的service调用2,如果是service出现大篇幅的逻辑判断,很容易跟原来的业务逻辑混淆,在定位的问题的时候,需要仔细阅读,另外在新原创 2021-10-29 16:16:33 · 287 阅读 · 0 评论 -
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 · 142 阅读 · 0 评论 -
java-idea-sonar
文章目录sonar服务器sonaridea的sonarsonar代码检查方法复杂度问题比较的要求sonar代码质量管理服务器sonar有专业的管理页面,对git上的代码进行扫描,实现对项目的整体分析,sonar的问题标注点比较清晰idea的sonar以前安装过发现要使用到服务器地址,现在安装发现不需要服务器的sonar支持,可能是升级了吧,安装过程容易失败,网上也有对应的解决方案sonar代码检查方法复杂度问题这个很有学习价值,看下面的官方解释https://www.sonarsourc原创 2021-09-30 11:09:31 · 306 阅读 · 0 评论 -
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 · 382 阅读 · 0 评论 -
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 · 217 阅读 · 0 评论 -
显示精度问题-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 · 727 阅读 · 0 评论 -
redis-jedis-热爱与分享
jedis方法菜鸟教程:https://www.runoob.com/redis/redis-keys.html //----------------------------------------------------key-------------------------------------------------------------- /** * 删除多个key,如果key不存在,不做任何操作,最终返回的是删除的个数。 * * Remo原创 2021-09-09 15:18:56 · 257 阅读 · 0 评论 -
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 · 2974 阅读 · 0 评论 -
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 · 253 阅读 · 0 评论 -
redis-热爱与分享
菜鸟教程:https://www.runoob.com/redis/redis-sets.html原创 2021-09-08 01:14:38 · 64 阅读 · 0 评论 -
es-es的字段修改
es的字段属性修改在存在数据的情况下,无法直接修改字段,所以考虑搬数据方案1:搬迁数据导新索引-》删除原来索引或者对原来的索引进行修改-》删除的情况下进行创建索引-》将原来的数据搬迁到新索引方案2搬迁数据导新索引-》删除原来索引-》启动项目-》将原来的数据搬迁到新索引这里采用方案2,搬迁数据导新索引post _reindex{“source”: {“index”: “custom_resource”},“dest”: {“index”: “custom_resource1”,原创 2021-09-06 17:22:19 · 1251 阅读 · 0 评论 -
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 · 1126 阅读 · 0 评论 -
读书笔记-沟通的方法
目录沟通的方法1,全力以赴的沟通,从倾听开始2,理解信息背后的人3,怎样让不友好的人好好说话4,怎样让对方无法按拒绝你沟通的方法1,全力以赴的沟通,从倾听开始如果领导来电话问现在忙吗?考察工作情况呢还是安排新工作?如果说忙,可能错失了一个机会如果说不忙,是不是工作不饱和这个应该不回答,直接问领导,您请说。相亲对象问你互联网加班一定很辛苦吧对方不是问你工作情况,而是想知道你是否时间投入亲密关系。三要素:情绪、事实和期待举例:a,领导总是让我加班是情绪,而不是表述事实b,你为什么总原创 2021-09-05 18:30:01 · 714 阅读 · 0 评论 -
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 · 56 阅读 · 0 评论 -
关于性能的讨论
这里只从数据层次讨论1,数据库加索引优化或者代码层次减少数据库的调用(mybatis嵌套集群查找等)、优化sql2,读写分离3,分库分表4,数据库集群5,增加redis6,采用mget、pipeline批处理原创 2021-09-02 01:04:15 · 98 阅读 · 0 评论 -
java-集合遍历出现异常的问题-CopyOnWriteArrayList
CopyOnWriteArrayList传统的for遍历过程中,不能对集合进行修改操作,容易导致异常。jdk7引入了CopyOnWriteArrayList,查找的时候没有加锁,如果是修改操作,就会被加锁,然后对原来的数据做一个副本,修改结束后对原来的数据进行替换。使用在这里插入代码片...原创 2021-08-30 14:08:43 · 654 阅读 · 0 评论 -
关系表数据同步-es
es因为字段很灵活,搜索能实现分词,字段可以是list基本数据类型的数组,所以在同步数据的时候,往往会出现在主业务是传递list,保存的时候会变成了对应的关系表,所以会出现传递的数据变成了关系表和对应主表数据,这个时候就变成了传递多个数据。优化:采用提前类内聚方法,对参数进行提前的处理,然后只需要传递一个对象即可。...原创 2021-08-26 11:49:51 · 203 阅读 · 0 评论 -
数组拼接成一个使用逗号分隔的字符串
当拼接只有一个元素的时候,就不会进行拼接分隔符号 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 · 399 阅读 · 0 评论 -
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 · 50 阅读 · 0 评论 -
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 · 103 阅读 · 0 评论 -
java-关于随机数的问题
jdk1.8提供了更加高效的随机数算法,但是出于专业,我们不能就认为获取的数据就不会跟其他的随机数重复了,除非不关心是否会与其他随机数重复,比如文件的下载进行重命名。随机数的命名参考对于随机数的命名,最佳的设计就是时间戳加序列化,但是因为时间戳比较长,很多时候不被允许,所以会改用年月日时分秒格式,或者直接采用年月日的方式。。比如redis对stream中生成的id进行拼接时候,按照微妙级别的时间戳+序列号,当时间相同的时候,序列号进行增加,这里需要注意redis操作是单线程的,虽然redis可以f原创 2021-08-17 15:52:53 · 130 阅读 · 0 评论 -
java-接口的定义方式
先看下面的代码 @PostMapping("delete") public BaseResponseDTO delete(UserAuthInfo user, @RequestBody BaseInfoDTO in) { boolean flag = networkLibraryServiceDomain.delete(user, in); if (flag) { return BaseResponseDTO.success();原创 2021-08-17 15:25:03 · 70 阅读 · 0 评论 -
id太长导致id的精度丢失
生成的id有时候会太长,网络传输或者传递到前端的时候就会丢失数据,pc端接收的有效字段是17位,从18位开始都是变为0解决方案1,将长度缩减2,将id转成字符串进行传递。考虑到id缩短存在风险,一般都是转成字符串传递。...原创 2021-07-29 15:21:40 · 814 阅读 · 0 评论 -
mysql-if函数-count函数-isnull函数
count计算的时候排除nullif判断为真的时候,显示第一个结果,isnull,当null的时候返回1,非null返回0SELECT count( IF ( iway2 = cway2 AND iway2 = 1, 1, NULL ) ) result FROM (SELECT bi.interincome_way iway, c.id AS id, c.interincome_way cway, c.`status`, ISNULL( bi.interincome_way ) A原创 2021-07-29 10:17:20 · 542 阅读 · 0 评论 -
es-elasticsearch-RestHighLevelClient-高阶
RestHighLevelClient注意事项必须是jdk1.8,另外es必须是6.0版本以上原创 2021-07-26 09:33:21 · 266 阅读 · 0 评论 -
ng-网关-zuul
一般服务的访问ng-》网关-》服务所以通常有一个服务访问的前缀,这个前缀是在ng上配置的,然后接着才是具体服务的url,zuul可以没有前缀,但是zuul决定了跳转的服务。zuul的配置path其实就是寻找到对应的url格式,然后选择选择跳转注意,当出现两个服务器的url前缀一样的时候,path该如何配置呢?答案是zuul从上之下检索url,符合条件就进行跳转# zuul网关配置,ribbon客户端负载zuul: routes: # 路由前缀 #prefix: /api原创 2021-07-21 16:45:19 · 338 阅读 · 0 评论 -
es-elasticsearch-SpringBootDataElasticsearch在springboot中的使用
一,依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>二,实体类实体类可以决定index和type,切换index是消耗资源的,原创 2021-07-21 10:57:02 · 238 阅读 · 0 评论 -
DDD框架
DDD框架参考:https://www.cnblogs.com/daoqidelv/p/7499662.htmlDDD(domain driven design领域驱动设计)框架包括User Interface(门面层)、application(应用层)、domain(业务领域层)、infrastructure(基础设施层)User Interfacedto:request和response两部分,通过它定义入参和出参的契约controller:接口访问协议控制器application原创 2021-07-19 10:10:58 · 2491 阅读 · 0 评论 -
idea的社区版本能不能用?--idea编译无法找到jar包问题(插曲)
答案是能用,也不能用,用了容易血压上升。换新公司后自己安装软件后发现是社区版本,但是功能也能用,就是经常自己不能检查pom依赖更新,没事,手动可以更新。有时候因为不会自动clean加载的jar导致了修改的代码无法被编译到,没事,可以debug看看,也可以手动清理。但是!!!直到今天,feign调用后发现熔断了,但是被调用的项目没有报错!!!将熔断去掉,可以查看是返回了状态500,那就是被调用的项目发生异常情况了,情况还有点复杂,因为公司的nacos不稳定,出现nacos断开无法找到服务,这就影响到定原创 2021-07-16 16:59:45 · 2790 阅读 · 2 评论 -
公考 - 申论
静思 悟道 = 》 目无全牛会思考 -》 有洞察力 -》思维体系(万能思维体系)唯物观 - - 述材料(面试官的思维)- - 述而不作(提炼)原创 2021-07-07 10:33:15 · 202 阅读 · 2 评论 -
json的时间格式问题和aop,高聚合,list转逗号分隔字符串
序列化方案网上有一个处理方案是采用序列化https://blog.csdn.net/u012075238/article/details/84249973public class DoubleSerialize extends JsonSerializer<Double> { private DecimalFormat df = new DecimalFormat("0.00"); @Override public void serialize(Doubl原创 2021-06-30 15:28:40 · 125 阅读 · 0 评论 -
经营分析数据同步
流程定时器–检查同步线程是否正在执行–记录ProcessInfo同步信息–执行同步–记录ProcessInfo数据同步结束信息检查同步线程是否正在执行,是因为开了接口,防止两个同步进程在执行,这里可以同步...原创 2021-06-15 11:14:36 · 54 阅读 · 0 评论 -
go 杂记录
目录1,并发2,时间的转换3,redis操作大全4,go的swich5,字符串的拼接6,复杂的结构体判断是否为空实例字符串的开头在判断是否包含某个字段的判断,目前只有map是确定的,如果是强转后判断,接收对象是interface,可能会出现错误,看下面例子排序err日志独立存储高并发下append出现线程不安全1,并发var count int = 0func Count() { logger.Info("执行count=====================") go add() go原创 2021-06-14 00:58:20 · 80 阅读 · 0 评论