自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 加密数据库操作

需求:在项目都完成之后,发现yaml配置里面的数据库账号密码都是明文的,为了安全起见,需要在不改动原有的代码基础上,完成加密操作。项目中使用的是hikari数据连接池(durid连接池是同样的操作,将第二步的继承对象改为duridDataSource就行)新建config类继承HikariDataSource,重写getPassword方法。用新的config类生成datasource。

2023-05-30 22:22:31 885

原创 Optional特性取代判断Null的if else

切记使用ofNullable的时候(jsonNode.get(A)时,最好不要使用get,会直接NPE)如果想要通过OfNullable获取类的一层一层内容x.get().get()时。最好的办法就是ofNull为最顶层,然后map一层一层嵌套获取。如果某一层没获取到就走orelse()

2023-05-29 15:15:55 1103

原创 debug研究

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UsmJ93w5-1685344057464)(D:\typora_pic_all\image-20230529145417753.png)]debug的condition。通常用在for循环里面。

2023-05-29 15:09:05 843

原创 logback详解

日志输出的都会在控制台打印,这个是默认的日志输出的可以选择进行在控制台打印,这个就是我们在yaml里面的配置的日志等级或者在logback里面配置的consoleAppender日志等级待处理:这边的e.pringstack()为什么会在最后出现?(可能不管e.printStack写在哪里,都只会在最后输出)

2023-05-12 10:50:54 430

原创 JackSon的ObjectNode和JsonNode

需要注意的是,每次添加新的子节点时,都会创建一个新的JsonNode对象,因此在处理大量数据时需要注意效率问题。另外,ObjectNode类提供了许多便捷的方法来操作JSON对象,如put()、set()、replace()等,可以极大地简化JSON数据的处理过程。但是,在处理大量数据时,需要注意ObjectNode对象的创建和销毁,以及内存使用的问题。ObjectNode类中包含了JsonNode类中的所有方法,同时也添加了一些操作JSON对象的方法,例如put()、remove()等等。

2023-05-08 13:46:40 2465

原创 单元,集成,系统,验收,回归测试

集成测试:集成测试是测试整个系统的不同模块之间的交互和接口是否能够协同工作。通常由专门的测试人员来完成,他们可以通过手动测试或自动化测试工具来测试系统各个模块之间的交互和接口是否能够正常工作。验收测试是由用户或客户进行的测试,用于验证软件系统是否符合用户需求,并且可以在实际环境中正常使用。系统测试是在单元测试,集成测试等前置测试之后,对整个软件系统进行测试,确定是否满足客户的需求,能够在预定的环境中运行。回归测试可能是在系统测试和集成测试之后进行的,也可能在这些测试之前进行。

2023-05-06 15:08:21 1255

原创 FastJson转JackSon(JsonProperty)

安全漏洞 Fastjson曾多次被发现存在安全漏洞,其中包括反序列化漏洞、代码执行漏洞、DoS漏洞等等。这些漏洞可能会导致应用程序受到攻击,造成数据泄露、系统瘫痪等严重后果。反序列化性能 Fastjson的反序列化性能在所有Java JSON库中是最快的,但是在某些情况下,它的反序列化性能可能会比其他库慢。例如,当JSON数据包含大量的嵌套对象或数组时,Fastjson的反序列化性能可能会受到影响。

2023-05-06 10:58:50 372

原创 git标准使用

有开发需求的任务时,在dev分支上开feat分支(本地)。在feat分支上完成功能开发。开发完成后,远程拉取dev分支的更新,将本地feat分支合并到dev上。视频中错误:feat分支不能推送到远程仓库中,否则远程仓库将出现成百上千的僵尸分支。此外还有两种分支:hotfix,用于紧急修复master分支中的漏洞或者bug,从master分支直接创建,修复完后合并到master和dev分支中。release是dev中新功能开发完成后,投入生产环境前用以测试的分支,创建自dev,合并到dev和master。

2023-05-05 17:42:33 786 3

原创 远程gitlab新建项目,本地已有代码,进行推送

如果远程有你想要推送的分支如dev-ws。如果远程仓库没有你想要的分支。这里还有一点需要注意的。

2023-05-05 17:40:21 1813

原创 ObjectMapper使用

---这个是将所有非默认值输出。--这个是将所有非Null的输出。--这个是将所有的非’'的输出。

2023-05-05 10:44:53 1013 3

原创 滑动窗口求最大和最小

leetcode算法:滑动窗口

2023-03-07 21:15:22 596 1

原创 Try-with-resource在进行资源关闭时候替换try-catch-finally

try-with-resource学习

2023-02-07 13:32:18 454 2

原创 Redis面试题

redis

2022-10-18 14:07:19 368

原创 redis分布式锁

redis分布式锁

2022-10-14 14:08:20 809

原创 源码解析hashmap和hashtable区别

hashMap与hashTable

2022-10-13 15:09:01 275

原创 Feign的调用报错时,降级处理方式,fallBackFactory

feign降级处理

2022-09-05 10:16:29 1671

原创 kafka二刷总结+本地代码Demo

kafka

2022-08-25 11:35:43 505 1

原创 树的遍历基础

树的遍历基础

2022-08-19 09:53:27 88

原创 Mysql的not in和null都存在时的坑

msyql的null特殊性

2022-08-17 18:06:11 432

原创 多线程基础

多线程基础

2022-08-15 13:43:43 121

原创 Lamda表达式--演变过程+代码

Lambda

2022-08-12 16:28:21 255

原创 ReentrantReadWriterLock初步了解

ReentrantReadWriter读写锁

2022-08-10 11:35:12 118

原创 NIO+代码实现---Buffer+Channel+Selector

netty底层NIO

2022-08-05 11:42:24 168 1

原创 模拟BIO实战--实现一个线程对应一个客户端

线程池模拟BIO流程

2022-08-03 09:26:53 93

原创 模拟BIO实战--实现一个线程对应一个客户端

线程池模拟BIO

2022-08-03 09:13:59 125

原创 ElasticSearch(全文检索--倒排索引)

ElasticSearch

2022-07-12 17:28:40 295

原创 swagger页面直接添加token+网关验证

swagger添加token验证

2022-06-17 17:42:52 2236 2

原创 redis项目实战--缓存存放数据,并监听过期事件

redis监听过期事件

2022-06-17 14:04:30 933

原创 redis的数据库通知(notify-keyspace-events)

redis订阅事件通知

2022-06-17 14:03:49 5127

原创 项目中redis配置

redis实战配置

2022-06-15 15:00:39 635

原创 从Java数据序列化 到 redis数据序列化

redis序列化理解

2022-06-15 14:59:10 898

原创 mysql锁

mysql锁参考:https://blog.csdn.net/xifeijian/article/details/20313977MyIsam支持表级锁InnoDB支持表级锁,行级锁 ,但是默认是行级锁表级锁:开销小加锁快不会出现死锁!!锁定粒度大发生冲突概率最高并发度最低行级锁开销大加锁慢会出现死锁!!锁定粒度最小表级锁(MyISam引擎)两种模式:表共享读锁,表独占写锁当一个用户对表进行读操作时,其他用户可以进行读操作,不能进行写操作当一个用

2022-05-17 18:41:02 98

原创 枚举类实战

枚举类实操概述代码:package com.gstanzer.microservice.unit.safety.common.enums;/** * @author 王顺 * @description * @date 2022/4/12 */public enum BridageInfoEnum { 芜湖市消防救援支队("BR4302002021xxx60001","34002000"), 芜湖市镜湖区消防救援大队("BR4302022021xxx60002","3400

2022-05-17 18:40:24 89

原创 枚举类实战

枚举类实操概述代码:package com.gstanzer.microservice.unit.safety.common.enums;/** * @author 王顺 * @description * @date 2022/4/12 */public enum BridageInfoEnum { 芜湖市消防救援支队("BR430200202101160001","34002000"), 芜湖市镜湖区消防救援大队("BR430202202101160002","3400

2022-05-05 11:20:30 228

原创 left join on多条件深度理解

left join on多条件深度理解核心:理解左连接的原理!左连接不管怎么样,左表都是完整返回的当只有一个条件a.id=b.id的时候:左连接就是相当于左边一条数据,匹配右边表的所有行,满足on后面的第一个条件a.id=b.id的进行返回当有两个条件的时候a.id=b.id and a.age>100(当第二个条件进行左表筛选时)就是左边这张表只有a.age>100的行,才会参与右表的每行匹配(但是a.age<100的行也会返回,只不过age<100的行是不可能匹配到

2022-04-28 14:18:08 29321 2

原创 Tomcat新理解

Tomcat新理解1号大佬:提问:为什么称tomcat为服务器,服务器不就是一台电脑吗,两者的区别是什么???????服务器就是一台电脑Tomcat严格来说 是 提供服务的 服务器软件就是说普通电脑不能当做服务器直接使用 因为别人访问 都是HTTP协议访问使用HTTP协议访问普通电脑 都会直接被拒绝的。因为没有软件提供HTTP服务,表现为浏览器打不开网页。但是安装了Tomcat之后 Tomcat就会在80或者8080开一个端口 监听 看看有没有连接这个电脑这时候再访问还是那台电脑 就能返

2022-04-28 14:16:48 287

原创 反射小demo

反射练习代码package com.ws.practise.reflcet;import lombok.Data;/** * @author 王顺 * @description * @date 2022/4/14 */@Datapublic class Animal { private String id; private String name; private String age; public Animal() { } pu

2022-04-14 17:17:11 220

原创 DIstinct理解

DIstinct理解参考:https://blog.csdn.net/lmy86263/article/details/73612020由来SELECT a.f_is_regular, a.f_review_time, DISTINCT(a.unit_id), a.monitor_time, a.unit_name, a.id, datediff( a.f_review_time,a.monitor_time) as disposeTimeDiff FROM `event-disp

2022-04-13 20:58:45 597

原创 springboot中使用ApplicationRunner接口

springboot中使用ApplicationRunner接口applicationRunner使用Spring Boot如何解决项目启动时初始化资源,在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等。实际操作:原因:​ 项目中某个接口速度过慢,然后需要加载字典表里面的数据进行left join ,如下图,进行了两次字典表的left join ,当Unit_info表数据量很大的时候,就会很慢。操作:​ 将字典表的

2022-04-13 20:57:32 1557

原创 Animal b = new Dog(); 向上转型的理解

Animal b = new Dog(); 向上转型的理解参考文章:https://blog.csdn.net/zhangfan1913775361/article/details/95178806为什么要用向上转型?因为为了让方法复用,只写一个以父类为形参的方法即可。但是会丢失子类的特有方法核心就是下面代码-------看完就能理解在下面的代码中Animal为父类,存在move方法Dog为子类,存在move,bark方法Animal animal=new Animal(); okD

2022-04-12 17:56:21 948

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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