自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 spring security新版本的爽点在哪里,DSL?

spring security新版本写法

2024-07-13 16:25:47 190

原创 浅聊授权-spring security和oauth2

简单聊聊java后端授权

2024-07-13 16:14:20 925

原创 ResponseBodyAdvice和数据脱敏方案

脱敏

2023-11-14 11:24:30 207

原创 序列化注解脱敏

注解脱敏

2023-11-14 11:00:39 161

原创 关于笔记的保存问题

笔记丢失和保存的问题

2023-11-14 10:29:48 364

原创 中级软考复习

中级软考复习

2023-11-14 10:00:18 271

原创 HttpClient-正向代理和验签

HttpClientBuilder是阿帕奇的一个http客户端构建类,通过继承构建类可以添加验签,实现统一发送请求的时候携带验签。

2023-11-14 09:56:56 71

原创 java的单元测试-mock测试

java的单元测试

2022-07-13 14:48:54 4051 1

原创 nacos源码带读

nacos源码

2022-06-01 18:14:44 217

原创 异常处理-断言和枚举封装异常

全局异常处理

2022-05-17 18:35:33 437

原创 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

原创 go的国际化处理

go语言

2022-01-18 09:31:18 631

原创 BigDecimal的大误区

BigDecimal

2022-01-18 09:30:53 79

原创 idea好用的插件

idea插件

2021-11-25 14:21:01 52

原创 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

原创 redis-热爱与分享

菜鸟教程:https://www.runoob.com/redis/redis-sets.html

2021-09-08 01:14:38 60

原创 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关注的人

提示
确定要删除当前文章?
取消 删除