java
给自己做减法
这个作者很懒,什么都没留下…
展开
-
排序算法快速记忆
排序算法快速记忆原创 2024-09-11 16:15:28 · 931 阅读 · 0 评论 -
ResponseBodyAdvice和数据脱敏方案
脱敏原创 2023-11-14 11:24:30 · 233 阅读 · 0 评论 -
HttpClient-正向代理和验签
HttpClientBuilder是阿帕奇的一个http客户端构建类,通过继承构建类可以添加验签,实现统一发送请求的时候携带验签。原创 2023-11-14 09:56:56 · 95 阅读 · 0 评论 -
关于接口的入参类共享问题
简介很多公司在写接口入参的时候,会选择采用继承或者是共用一个类,这样的好处很明显,有时候前段需要加字段的时候,后端可能不需要重新在类中加字段,而且一开始开发的时候就省事。但是这样做真的好吗?共享类的问题最近做一个需求,需求内容难度一般,但是看了原来做这块的代码发现存在非常复杂的逻辑,由于第一次远程办公,各方面沟通比较慢,所以一开始无法获取到这个接口的请求参数,所以只能直接看代码。代码存在多处使用BeanUtils.copyProperties,接口入参类的字段总共多达三十多个,在这个情况下去检查一共原创 2022-03-17 13:52:14 · 434 阅读 · 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 · 729 阅读 · 0 评论 -
BigDecimal的大误区
BigDecimal原创 2022-01-18 09:30:53 · 88 阅读 · 0 评论 -
idea好用的插件
idea插件原创 2021-11-25 14:21:01 · 65 阅读 · 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 · 1305 阅读 · 0 评论 -
代码优化之非核心代码的抽取问题
代码优化之非核心代码的抽取问题背景为什么需要代码抽取非核心代码随着版本的迭代和不同开发人员对接口的修改,通常以不改动老代码为原则进行微调,随着微调的积累,就逐渐产生非核心代码没有得到归纳梳理的情况。非核心代码对原业务代码的影响1,如果controller层出现非常大篇幅的逻辑判断,导致controller类代码行数非常大,定位问题的时候需要从接口一直往下寻找对应的service调用2,如果是service出现大篇幅的逻辑判断,很容易跟原来的业务逻辑混淆,在定位的问题的时候,需要仔细阅读,另外在新原创 2021-10-29 16:16:33 · 523 阅读 · 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 · 163 阅读 · 0 评论 -
java-idea-sonar
文章目录sonar服务器sonaridea的sonarsonar代码检查方法复杂度问题比较的要求sonar代码质量管理服务器sonar有专业的管理页面,对git上的代码进行扫描,实现对项目的整体分析,sonar的问题标注点比较清晰idea的sonar以前安装过发现要使用到服务器地址,现在安装发现不需要服务器的sonar支持,可能是升级了吧,安装过程容易失败,网上也有对应的解决方案sonar代码检查方法复杂度问题这个很有学习价值,看下面的官方解释https://www.sonarsourc原创 2021-09-30 11:09:31 · 318 阅读 · 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 · 401 阅读 · 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 · 241 阅读 · 0 评论 -
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 · 365 阅读 · 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 · 3039 阅读 · 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 · 297 阅读 · 0 评论 -
java-集合遍历出现异常的问题-CopyOnWriteArrayList
CopyOnWriteArrayList传统的for遍历过程中,不能对集合进行修改操作,容易导致异常。jdk7引入了CopyOnWriteArrayList,查找的时候没有加锁,如果是修改操作,就会被加锁,然后对原来的数据做一个副本,修改结束后对原来的数据进行替换。使用在这里插入代码片...原创 2021-08-30 14:08:43 · 673 阅读 · 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 · 422 阅读 · 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 · 402 阅读 · 0 评论 -
es-elasticsearch-RestHighLevelClient-高阶
RestHighLevelClient注意事项必须是jdk1.8,另外es必须是6.0版本以上原创 2021-07-26 09:33:21 · 321 阅读 · 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 · 365 阅读 · 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 · 425 阅读 · 0 评论 -
idea的社区版本能不能用?--idea编译无法找到jar包问题(插曲)
答案是能用,也不能用,用了容易血压上升。换新公司后自己安装软件后发现是社区版本,但是功能也能用,就是经常自己不能检查pom依赖更新,没事,手动可以更新。有时候因为不会自动clean加载的jar导致了修改的代码无法被编译到,没事,可以debug看看,也可以手动清理。但是!!!直到今天,feign调用后发现熔断了,但是被调用的项目没有报错!!!将熔断去掉,可以查看是返回了状态500,那就是被调用的项目发生异常情况了,情况还有点复杂,因为公司的nacos不稳定,出现nacos断开无法找到服务,这就影响到定原创 2021-07-16 16:59:45 · 2816 阅读 · 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 · 148 阅读 · 0 评论 -
java系列
基础工具bug当出现找不到 com.netflix.zuul.monitoring.TracerFactory类的时候,首先检查依赖是否完整,spring-cloud-starter-netflix-eureka-clientspring-cloud-starter-netflix-zuul然后检查启动类上是否添加(肯定是添加了,不然就没启动zuul了,严谨点还是检查看看)@SpringBootApplication@EnableEurekaClient@EnableZuul原创 2021-06-13 20:17:54 · 1175 阅读 · 1 评论 -
java-redis-redission
优势底层是netty框架,线程安全,支持分布式锁和分布式集合依赖配置bean工具类原创 2021-06-03 09:23:18 · 684 阅读 · 0 评论 -
并发--带着问题去学习
带着问题去学习–并发原创 2021-02-02 00:03:48 · 114 阅读 · 0 评论