java
文章平均质量分 64
田培融
这个作者很懒,什么都没留下…
展开
-
我们一起做一个可以商用的springboot脚手架
这里写自定义目录标题系统介绍新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入系统介绍TBOOT平台专业版,springboot基础架构, 包含工作流引擎,权限认证,搜索平台,多租户管理,支付平台等等一系列专业功能的开发平原创 2021-06-28 09:40:34 · 533 阅读 · 1 评论 -
CountDownLatch源码解析加流程图详解--AQS类注释翻译
功能定义这个类是一个叫名Doug Lea的java 并发大神开发的。 是在jdk1.5中添加的。其官方解释为:A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.他的意思是CountDownLatch是一个同步工具,他的功能是允许一个或多个线程处于等待状态,直到其他的线程执行完成一组操作原创 2020-08-07 17:53:01 · 464 阅读 · 0 评论 -
分布式ID生成器流程图--获取ID
交个朋友吧原创 2020-08-07 08:53:39 · 228 阅读 · 0 评论 -
Oauth2方式实现单点登录
下面先简单介绍一下Oauth2的原理Oauth2是什么?Oauth2是一种授权机制,用来授权给第三方应用,获取用户数据。Oauth2是什么的解释 这是阮一峰老师的解释,因此解释的比较好了,就不在此重复了。Oauth2 的原理Oauth2 有四种授权模型 授权码,隐藏式,密码式,凭证式 目前主流的形式是授权码方式。 我们项目中使用的也是授权码方式。 这里就只介绍一下授权码方式 。授权码方式这块的内容完全是引用于Oauth2原理 只是为了方便大家截阅读不用在来回跳转。 其他的几种方式可以去这原创 2020-07-30 11:18:48 · 16740 阅读 · 4 评论 -
lombok @Accessors用法
Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果,下面介绍三个属性fluentfluent的中文含义是流畅的,设置为true,则getter和setter方法的方法名都是基础属性名,且setter方法返回当前对象。如下@Data@Accessors(fluent = true)public class User { priv...转载 2019-09-24 15:42:47 · 190 阅读 · 0 评论 -
java 用流收集数据
前言我们已经在前面两篇文章中用过 collect 终端操作了,当时主要是用来把 Stream 中所有的 元素结合成一个 List 。在本章中,你会发现 collect 是一个归约操作,就像 reduce 一样可以接 受各种做法作为参数,将流中的元素累积成一个汇总结果。具体的做法是通过定义新的 Collector 接口来定义的,因此区分 Collection 、 Collector 和 colle...原创 2019-08-13 11:05:40 · 519 阅读 · 0 评论 -
java 流使用
前言在本章中,你将会看到许多Stream API支持的许多操作.这些操作能让你快速完成许多复杂的查询.如筛选、切片、映射、查找、匹配和归约。 接下来,我们会看到一些特殊的流:数值流,来自文件和数组等多种来源的流,最后是无限流.1 筛选和切片在本节中,我们来看看如何选择流中的元素:用谓词筛选,筛选出各不相同的元素,忽略流 中的头几个元素,或将流截短至指定长度。1.1 用谓词筛选filter...原创 2019-08-12 13:52:14 · 529 阅读 · 0 评论 -
函数式数据处理(一)--流
前言集合是Java中使用最多的API。要是没有集合,还能做什么呢?几乎每个Java应用程序都会制 造和处理集合。集合对于很多编程任务来说都是非常基本的:它们可以让你把数据分组并加以处 理。很多业务逻辑都涉及类似于数据库的操作,比如对几道菜按照类别进行分组 (比如全素 菜肴),或查找出最贵的菜。你自己用迭代器重新实现过这些操作多少遍?大部分数据库 都允许你声明式地指定这些操作。比如,以下SQ...原创 2019-08-12 10:44:06 · 904 阅读 · 0 评论 -
Lambda 表达式
前言前片文章讲到,使用匿名类来表示不同的行为并不令人满意:代码十分啰嗦,这会影响程序 员在实践中使用行为参数化的积极性。在本章中,我们会教给你Java 8中解决这个问题的新工 具——Lambda表达式。它可以让你很简洁地表示一个行为或传递代码。现在你可以把Lambda 表达式看作匿名功能,它基本上就是没有声明名称的方法,但和匿名类一样,它也可以作为参 数传递给一个方法。本章的行文思想就是教你如...原创 2019-08-12 09:48:42 · 247 阅读 · 0 评论 -
CompletableFuture 组合式异步编程
本节内容:创建异步计算并获取计算结果.使用非阻塞操作提升吞吐量.设计和实现异步API.如何以异步的方式使用同步的API.如何对两个或多个异步操作进行流水线和合并操作.如何处理异步操作的完成状态.现在,很少有网站或者网络应用会以完全隔离的方式工作。更多的时候,我们看到 的下一代网络应用都采用“混聚”(mash-up)的方式:它会使用来自多个来源的内容,将这些内 容聚合在一起,方便用...原创 2019-08-14 13:34:29 · 407 阅读 · 0 评论 -
通过行为参数化传递代码
行为参数化就是可以帮你处理频繁变更的需求的一种软件开发模式.一言以蔽之,它意味 着拿出一个代码块,把它准备好却不去执行它。这个代码块以后可以被你程序的其他部分调用, 这意味着你可以推迟这块代码的执行。例如,你可以将代码块作为参数传递给另一个方法,稍后 再去执行它。这样,这个方法的行为就基于那块代码被参数化了。打个比方吧:你的室友知道怎么开车去超市,再开回家。于是你可 以告诉他去买一些东西,比...原创 2019-08-09 14:21:06 · 300 阅读 · 0 评论 -
java并行流
在java7之前,处理并行数据非常麻烦. 第一:你得明确的把包含的数据结构分成若干子部分. 第二:你要给每个子部分分配独立的线程. 第三:你需要在恰当的时候对他们进行同步,来避免不希望出现的竞争条件,等待所有线程完成,最后把这些结果合并起来.在前面的文章中,我们介绍了 Stream接口,让你可以很方便的处理它的元素,可以调用ParallelStream 方法把集合转换成并行流.并行流就是把一个...原创 2019-08-13 15:55:58 · 6687 阅读 · 3 评论 -
Command line is too long
报错内容:Error running ‘ServiceStarter’: Command line is too long. Shorten command line for ServiceStarter or also for Application default configuration.解法:修改项目下 .idea\workspace.xml,找到标签 , 在标签里加一行 ...转载 2019-07-02 09:35:29 · 2934 阅读 · 0 评论 -
工作流中文乱码问题解决
原创 2019-06-03 15:14:32 · 922 阅读 · 0 评论 -
HashMap的实现
随着jdk不断开发, 一些基本集合的实现方法也有所不同。 本文主要分析jdk7和jdk8。JDK8中的HashMapHashMap底层维护了一个数组, 数组中的很一项是一个Entry。1.创建 一个HashMapHashMap<String, Integer> map = new HashMap<String, Integer>();map.put("语文", 1...原创 2019-04-20 11:53:12 · 154 阅读 · 0 评论 -
生产问题的解决
在系统部署生产环境后, 在十天左右就会出现系统反应慢, 堆爆了,cpu占用百分百的情况。 在重启tomcat后情况就恢复了。在经过详细的 跟踪, 线程dump, 堆dump 下来分析后, 线程没有问题, 发现有两个原因:1: 通过memory analyzer 分析 堆dump文件后, 有一个缓存对象无限增长,并保持活动, 导致回收不了, 堆爆掉。2:由于后台 频繁gc, 导致系统...转载 2019-01-24 13:52:45 · 519 阅读 · 0 评论 -
StringUtils.split用法
示例代码: String val = "abcd**aaa*b****ccc***ddd**qqq"; String[] split = StringUtils.split(val, "*", 2); for (String s : split) { System.out.println(s); }结果:解释:重点说第三个参数 max = 2是说将字符串最...原创 2018-11-23 11:48:00 · 12049 阅读 · 0 评论