Springboot2.x最全整合系列(持续更新)

2021-02-26
阅读 2 分钟
3.6k
说明本文所有案例均采用SpringBoot2.x的最新版本进行演示。正逐渐对其进行分类汇总。。。力图做一个没有bug的,最全案例!!!基础系列一、Springboot基础配置1、Springboot搭建HelloWorld工程(跳过,不再重写)2、IDEA常用开发插件推荐3、IDEA环境热加载与热部署配置4、Springboot整合Lombok二、web开发1、Springboot...
封面图

mysql数据库,如何处理重复的数据?

2021-01-26
阅读 2 分钟
2.5k
其实解决能否插入重复数据的问题,一般情况下是有两个思路,就像治水一样,第一个就是从源头,第二个就是在水流经的路上。我们带着这两种思路继续往下看:

乐观锁这么重要,看我们如何2步手动实现(极其重要,面试必问)

2021-01-24
阅读 5 分钟
1.9k
java多线程中的锁分类多种多样,其中有一种主要的分类方式就是乐观和悲观进行划分的。这篇文章主要介绍如何自己手写一个乐观锁代码。不过文章为了保证完整性,会从基础开始介绍。
封面图

并发CAS机制你真的理解了嘛?(深入到操作系统分析)

2021-01-22
阅读 5 分钟
1.5k
为什么需要CAS机制呢?我们先从一个错误现象谈起。我们经常使用volatile关键字修饰某一个变量,表明这个变量是全局共享的一个变量,同时具有了可见性和有序性。但是却没有原子性。比如说一个常见的操作a++。这个操作其实可以细分成三个步骤:

三步为你的Springboot集成Actuator监控功能

2021-01-21
阅读 2 分钟
3.5k
有时候我们想要实时监控我们的应用程序的运行状态,比如实时显示一些指标数据,观察每时每刻访问的流量,或者是我们数据库的访问状态等等。这时候就需要Actuator了。

如何优雅地关闭JVM?看看钩子函数如何一步实现

2021-01-19
阅读 3 分钟
2.9k
程序的启动很简单,启动的时候通常会做一些预加载资源的操作。但是有时候关闭的时候,启动的时候预加载的资源并没有完全清理干净,因此可以使用钩子函数来完成。

文件目录的增删改操作?java如何实时监控

2021-01-18
阅读 2 分钟
1.6k
有时候你可能有个疑问,IDE总是可以检测到外部文件是否发生了变化,比如你在某个类里面加了一些代码,这时候的IDE就会弹出一个框说你做了更改。再或者是某个文件夹下的文件发生了改变,比如新建了一个或者是删除了一个等等。这时候我们的IDE依然可以检测到。这个功能到底是如何实现的呢?这篇文章主要是研究NIO的其中一...

Springboot集成Swagger2及常见配置(无坑版)

2021-01-16
阅读 5 分钟
12.4k
这种整合的文章确实已经烂大街了,写他一方面是补充我的springboot系列,另一方面确实还有一部分小伙伴没用过。最重要的是,如果你忘记了这种整合的代码。可以随时查阅。

java如何高效地读取一个超大文件?(四种方式分析对比)

2021-01-15
阅读 2 分钟
6.6k
我最近在优化我的PDF转word的开源小工具,有时候会遇到一个问题,就是如果我的PDF文件比较大,几百兆,如何更快更节省内存的读取它。于是我分析对比了四种常见的读取文件的方式,并使用javaVisualVM工具进行了分析。最后的出的结论是commons-io时间和空间都更加的高效。研究分析依然来自哪位baeldung国外大佬。

Java中压缩集合,你都知道哪几种方式?

2021-01-14
阅读 3 分钟
1.3k
如果你不理解,我们可以看一个简单的例子,去说明什么是压缩集合。本文文章不长,但是还算是比较实用的小技巧。主要内容来源于国外小哥Baeldung的博客:下面给出个地址

一个GCRoot不可达的对象,会立刻被垃圾回收吗?

2021-01-12
阅读 3 分钟
1.9k
java提供了一个finalize方法,可以帮助我们进行资源释放,类似于C++中的析构函数。但是目前普遍的认识是不要使用,为什么呢?就是因为对java虚拟机的垃圾回收有影响。这篇文章对其进行一个说明。

Springboot启动了哪些bean?这两种方式可以获取

2021-01-07
阅读 2 分钟
4.3k
在本文中,我们将探索在容器中获取所有spring管理的bean的相关技术。这有神马用?主要是用于排查问题。一般都是我们创建的某一个bean没有启动的问题。毕竟工作中总是会遇到各种各样的bug。提前了解一些没有坏处。

一步为你的Springboot应用自定义banner

2021-01-06
阅读 2 分钟
1.2k
这个小功能据说是Springboot2.x的小彩蛋,出来很久很久了。之前知道没试过,这次试了一下,还可以,挺好玩的。最近因为开始重新看Springboot,看到了这个部分,于是整理到了文章中。烂大街的东西,拿来丢人显眼了。

为你Springboot项目自定义一个通用的异常(实用干货)

2021-01-05
阅读 4 分钟
1.5k
我们的项目通常来讲都是一个比较大的项目,包含了各种各样的服务。如果每个服务都以不同的方式返回异常信息,这样排查的时候就会比较凌乱。如果我们定义一个标准的异常处理体系。并在所有的服务中使用。那样开发起来就可以快速定位。页面也会更加的简单和直观。

你的程序出现了bug?这几款JVM工具也许可以帮你排查

2021-01-04
阅读 4 分钟
1.4k
在平时的开发当中我们总是会遇到各种各样的问题,比如说内存泄漏、死锁、CPU等。遇到问题不可怕,关键是我们如何去排查这些错误,对症下药才是根本。不过对于很多人来说,往往找不到这些问题的根本所在,因此这篇文章主要是让我们掌握一些工具来分析到底是哪里出现了问题。

java小白到架构师技术图谱(整理全网,持续更新)

2021-01-03
阅读 4 分钟
1.9k
本文整理于github上各大star大神仓库。并根据自己的理解重新进行了整理本文已经收录于[链接]后序会继续更新一、计算机基础1、数据结构(1)基本数据结构数据结构基本概念(时间复杂度和空间复杂度的计算方法)数组链表集合队列栈关联数组跳表倒排索引BitSet(2)树二叉树平衡二叉树完全二叉树哈弗曼树二叉查找树B、B+、B...

你了解java中的几种编码方式?解决乱码问题可能并不麻烦

2020-12-31
阅读 3 分钟
4.5k
编码的转换通常在IO机制中使用,一个好的编码可以为我们节省很多空间,在某种程度上提高我们应用的效率。由于之前就知道String中的转换方式,还有一些工具类,因此今天就好好的整理一下java中jdk提供的几种转换方式,希望对你有帮助。

还在用for循环遍历元素?试试for-each,它不香吗?

2020-12-28
阅读 4 分钟
1.2k
for循环是平时写代码用的最多的,但是之前看《Effective java》,大佬在某些场景写并不推荐。结合着自己之前刷算法题的经历,受益匪浅。

我在一个构造方法中写了30个参数,老板看了想骂人

2020-12-26
阅读 6 分钟
1.2k
于是乎,一种新的方法策略运用而生。那就是builder模式,在构造方法的参数过多时,可以方便的进行创建一个类对象。所以本文的中心主旨一句话总结:当构造方法的参数过多时,推荐使用builder模式

为什么 MongoDB 索引选择B-树,而 Mysql 索引选择B+树(精干总结)

2020-12-26
阅读 2 分钟
1.3k
本文献给准备面试或者是还在面试的你。常见面试题,送分题目,不拿白不拿。一、B树和B+树的区别很明显,我们想向弄清楚原因就要知道B树和B+树的区别。为了不长篇大论。我们直接给出他们的形式总结他们的特点。1、B树B树是一种自平衡的搜索树,形式很简单:这就是一颗B-树。针对我们这个问题的最核心的特点如下:(1)多...

我们到底该如何学习《数据结构与算法》?

2020-12-24
阅读 4 分钟
2.9k
这个问题本身就不是个问题,所有人都在强调数据结构与算法比较重要,但是好像平时也没用到,无法直观的去感受它的重要性,于是把学习重心放在了常见的哪些框架身上,似乎只要熟悉了哪些框架的API,编程就会所向披靡。