自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

东溪陈姓少年

Technology&Life&Share

原创 SpringBoot Admin简介

Hello!我创建了一个Spring Boot Admin的分享资料,欢迎下载。????点这里

2020-05-06 11:05:27 24 0

原创 tdd测试开发不完全指南

tdd测试驱动开发不完全指南 ⚠️:我录制了一个关于tdd测试驱动开发的分享视频,欢迎收看。

2020-04-14 13:47:52 117 0

原创 [译]高性能缓存库Caffeine介绍及实践
原力计划

概览 本文我们将介绍Caffeine-一个Java高性能缓存库。缓存和Map之间的一个根本区别是缓存会将储存的元素逐出。逐出策略决定了在什么时间应该删除哪些对象,逐出策略直接影响缓存的命中率,这是缓存库的关键特征。Caffeine使用Window TinyLfu逐出策略,该策略提供了接近最佳的命中...

2020-07-04 20:31:34 33 0

原创 图解resilience4j容错机制
原力计划

Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计。轻量级,因为库只使用Vavr,它没有任何其他外部库依赖项。相比之下,Netflix Hystrix对Archaius有一个编译依赖关系,Archaius有更多的外部...

2020-06-29 15:05:05 35 0

原创 Spring Boot2+Resilience4j实现容错之Bulkhead
原力计划

Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计。轻量级,因为库只使用Vavr,它没有任何其他外部库依赖项。相比之下,Netflix Hystrix对Archaius有一个编译依赖关系,Archaius有更多的外部...

2020-06-25 10:19:34 65 0

原创 除了FastJson,你也应该了解一下Jackson(二)
原力计划

概览 上一篇文章介绍了Jackson中的映射器ObjectMapper,以及如何使用它来实现Json与Java对象之间的序列化和反序列化,最后介绍了Jackson中一些序列化/反序列化的高级特性。而本文将会介绍Jackson中的一些常用的(序列化/反序列化)注解,并且通过示例来演示如何使用这些注解...

2020-06-09 12:35:19 44 0

原创 除了FastJson,你也应该了解一下Jackson(一)
原力计划

在上月末的时候收到一条关于fastjson安全漏洞的消息,突然想到先前好像已经有好多次这样的事件了(在fastjson上面)。关于安全方面,虽然中枪的机率微小,但是在这个信息越来越复杂的时代,安全性也变得越来越重要,就像DevSecOps的诞生,在软件交付的整个价值流中我们也需要注重安全这方面。当...

2020-06-06 11:22:52 42 0

原创 理解敏捷的价值观和原则
原力计划

敏捷宣言 敏捷宣言也称敏捷软件开发宣言,软件开发业的先辈们对以下四则价值观达成了一致: 个体和互动高于流程和工具 可工作的软件高于详尽的文档 客户协作高于合同谈判 响应变化高于遵循计划 **注:**下面是这份宣言的完整内容: 我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。...

2020-05-24 13:59:34 252 0

原创 Spring Boot Admin实现服务健康预警
原力计划

Over View 上一篇文章主要介绍了Spring Boot Admin的概况以及我们如何在系统中引入和使用Spring Boot Admin,以此来帮助我们更加了解自己的系统,做到能快速发现、排查问题。本篇文章将用代码演示Spring Boot Admin的消息通知功能,并利用这个开箱即用的特...

2020-05-15 09:48:45 148 0

原创 Spring Boot Admin简介及实践
原力计划

问题 在若干年前的单体应用时代,我们可以相对轻松地对整个业务项目进行健康检查、指标监控、配置管理等等项目治理。如今随着微服务的发展,我们将大型单体应用按业务模型进行划分,以此形成众多小而自治的微服务,我们品尝到了微服务的甜头:异常隔离、独立部署和发布、服务伸缩、便于协作开发…我们的项目服务更加解耦...

2020-05-11 16:09:33 41 0

原创 [译]按功能(特性)分包
原力计划

一种流行的方法是通过技术层面对项目进行分包。但是这种方法有一些缺点。相反,我们可以按功能分包并创建独立自治的程序包。结果是一个易于理解且不易出错的代码库。 整体分析 按照技术分包造成的缺点: 对属于某个功能的所有类的概述不佳。 通用代码、重用代码和复杂代码趋向于难以理解,并且由于难以把握...

2020-05-05 14:02:12 113 0

转载 好记性不如视觉笔记

**摘要:**视觉笔记,是将笔记内容与结构抽象,以可视化的方式呈现的笔记术。一些使用文字难以描述的情感和关系,通过图形化的转化将内容可视化。可以展示出文字背后的思考脉络,在阅读的同时,也能唤起对当时的思索与对未来的想象。 人到中年,总是逃不过这样的话题————日渐稀松的发顶、日渐膨胀的肉体、日渐...

2020-04-30 13:49:39 80 0

原创 聊聊Spring Boot Actuator
原力计划

概述 在本文中,我们将介绍Spring Boot Actuator。我们将首先介绍基础知识,然后详细讨论Spring Boot 1.x和2.x中的可用内容。 我们将在Spring Boot 1.x中学习如何使用,配置和扩展此监视工具。然后,我们将讨论如何利用反应式编程模型使用Boot 2.x和We...

2020-04-28 17:40:28 47 0

原创 使用Reactor响应式编程
原力计划

介绍 响应式编程 响应式编程不同于我们熟悉的命令式编程,我们熟悉的命令式编程即代码就是一行接一行的指令,按照它们的顺序一次一条地出现。一个任务被执行,程序就需要等到它执行完了,才能执行下一个任务。每一步,数据都需要完全获取到了才能被处理,因此它需要作为一个整体来处理。但是所谓的响应式编程**是函数...

2020-04-28 11:31:08 70 1

原创 Spring Data REST不完全指南(三)
原力计划

上一篇我们介绍了使用Spring Data REST时的一些高级特性,以及使用代码演示了如何使用这些高级的特性。本文将继续讲解前面我们列出来的七个高级特性中的后四个。至此,这些特性能满足我们大部分的接口开发场景。 需要满足的一些要求: 1.针对字段级别,方法级别,类级别进行限制(禁止某些字段,方...

2020-04-23 18:01:48 66 0

原创 Spring Data REST不完全指南(二)
原力计划

上一篇文章介绍了Spring Data REST的功能及特征,以及演示了如何在项目中引入Spring Data REST并简单地启动演示了Spring Data REST项目。在本文中,我们将深入了解Spring Data REST的特性,以此来满足我们日常api开发工作的要求。 如果仅仅是上一篇...

2020-04-21 21:56:30 89 0

原创 Gitflow分支管理策略

Gitflow存在两个记录项目历史的分支 Master分支:存储(官方的,正式的)项目发布历史记录的分支。 develop分支:充当功能的集成分支。 Develop分支将包含项目的完整历史记录,而master将包含简化版本。现在,其他开发人员应该克隆中央存储库,并为develop创建跟踪分支...

2020-04-21 11:12:00 31 0

原创 详解Gitflow分支管理策略
原力计划

Gitflow存在两个记录项目历史的分支 Master分支:存储(官方的,正式的)项目发布历史记录的分支。 develop分支:充当功能的集成分支。 Develop分支将包含项目的完整历史记录,而master将包含简化版本。现在,其他开发人员应该克隆中央存储库,并为develop创建跟踪分支...

2020-04-21 11:08:16 35 0

原创 [译]谈谈SpringBoot 事件机制
原力计划

要“监听”事件,我们总是可以将“监听器”作为事件源中的另一个方法写入事件,但这将使事件源与监听器的逻辑紧密耦合。 对于实际事件,我们比直接方法调用更灵活。我们可以根据需要动态注册和注销某些事件的侦听器。我们还可以为同一事件设置多个侦听器。 本教程概述了如何发布和侦听自定义事件,并解释了 Sprin...

2020-04-20 17:50:24 67 0

原创 Spring Data REST不完全指南(一)

简介 Spring Data REST是Spring Data项目的一部分,可轻松在Spring Data存储库上构建超媒体驱动的REST Web服务。 Spring Data REST 构建在 Spring 数据存储库之上,分析应用程序的域模型,并公开模型中包含的聚合的超媒体驱动的 HTTP 资...

2020-04-20 14:22:57 43 0

原创 [译]HAL-超文本应用语言

精益超媒体类型 总结 HAL 是一种简单的格式,它提供了一种一致且简便的方法在 API 的资源之间进行超链接。 采用 HAL 将使您的 API 易于探索,并且其文档很容易从 API 本身中发现。简而言之,这将使您的 API 更易于使用,因此对客户端开发人员更具吸引力。 使用适用于大多数编程语言的开...

2020-04-18 00:06:50 60 0

原创 使用Maven Archetype创建Java项目模板
原力计划

1.over view 简而言之,Archetype是一个Maven项目模板工具包。原型被定义为一种原始的模式或模型,所有其他同类的东西都是从中产生的。当我们试图提供一个提供生成Maven项目的一致方法的系统时,这个名字就合适了。Archetype将帮助作者为用户创建Maven项目模板,并为用户提...

2020-04-15 16:01:45 69 0

原创 jenkins集成sonarQube实现代码质量检查
原力计划

1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查。 其工作流程如下: 如图SonarQube由以下4个组件组成: 1.SonarQube Server: WebS...

2020-04-10 12:28:42 159 0

原创 Java – Try with Resources

1.介绍 Java 7中引入的对try-with-resources的支持使我们能够声明将在try块中使用的资源,并确保在执行该块后将关闭资源。 ⚠️:声明的资源必须实现AutoCloseable接口。 2.使用try-with-resources 简单地说,要自动关闭,必须在try中声明和初始...

2020-04-09 12:34:00 10 0

原创 java单元/集成测试中使用Testcontainers

1.Testcontainers介绍: Testcontainers是一个Java库,它支持JUnit测试,提供公共数据库、SeleniumWeb浏览器或任何可以在Docker容器中运行的轻量级、一次性实例。 测试容器使以下类型的测试更加容易: 数据访问层集成测试: 使用MySQL,Postgre...

2020-04-07 15:09:00 86 0

原创 [译]Spring中的设计模式

1.介绍 设计模式是软件开发的重要组成部分。这些解决方案不仅解决了反复出现的问题,而且还通过识别通用模式来帮助开发人员了解框架的设计。 在本教程中,我们将研究Spring框架中使用的四种最常见的设计模式: 单例模式 工厂方法模式 代理模式 模板模式 我们还将研究Spring如何使用这些模式来减...

2020-04-06 10:59:00 15 0

原创 Jenkins打造多分支流水线指南

overview: 多分支工作流程带来了以下几个关键能力: 在代码仓库中,每个新分支都有自己单独的工作流水线(job)。 每个工作流水线都记录了对应分支的构建和变更历史。 可以自定义设置流水线随着分支的删除而删除或修建。 通过重写父属性(如果需要),可以灵活地单独配置分支流水线属性。 Jenk...

2020-04-03 16:44:00 149 0

原创 JUint Mockito使用入门

准备 在我们进一步讨论之前,让我们探索几种不同的方法来启用Mockito测试中注释的使用。 方式一 MockitoJUnitRunner 我们拥有的第一个选择是使用MockitoJUnitRunner注释JUnit测试,如以下示例所示: @RunWith(MockitoJUnitRunner.cl...

2020-03-31 15:21:00 19 0

原创 JUnit 5基础指南

准备 添加maven依赖: <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> ...

2020-03-31 12:28:00 37 0

原创 一些小问题的解决方案

springboot项目中使用maven-wrapper作为构建工具,默认mvnw的编码是跟随系统的,特别指定方式: 修改mvnw文件,如下图:

2020-02-18 15:34:00 19 0

原创 [译] 微服务的设计模式

了解微服务架构的设计模式以克服采用它所带来的挑战。 微服务架构已经成为现代应用程序开发中公认的技术选择。尽管它解决了某些问题,但不是灵丹妙药。它有几个缺点,使用这种体系架构时,还需要解决许多问题。这就需要学习这些问题的通用模式,并通过可重用的解决方案来解决它们。因此,有必要讨论微服务的设计模式。在...

2019-12-16 14:20:00 24 0

原创 solr索引基本原理

solr是一个全局检索引擎,能够快速地从大量的文本数据中选出你所需要的数据,而你只需要提供相应的关键词进行检索。solr的高效率查询靠的是底层强大的索引库,所以solr最关键的技术也是其底层的索引设计。solr工作的时候可以归结成两个过程1.创建索引2.搜索索引。 这是一张solr的基本工作图: ...

2019-12-14 12:07:00 47 0

原创 springboot中实现kafka指定offset消费

kafka消费过程难免会遇到需要重新消费的场景,例如我们消费到kafka数据之后需要进行存库操作,若某一时刻数据库down了,导致kafka消费的数据无法入库,为了弥补数据库down期间的数据损失,有一种做法我们可以指定kafka消费者的offset到之前某一时间的数值,然后重新进行消费。 首先创...

2019-12-14 11:24:00 127 0

原创 java异常有效实践

异常在我们的平时开发过程中是非常寻常并且经常会面对的,我们有很多方式来处理和使用异常。充分发挥异常的优点可以提高程序的可读性,可靠性和可维护性。但是如果使用不当,也会带来很多负面影响。 参考 effective java 第三版中对于异常的一些优秀实践来做一下总结: No.1 只针对异常的情况才...

2019-12-12 16:29:00 17 0

原创 java创建线程的三种方式

一. 类继承Thread类创建线程/** *继承Thread类创建线程的方式 */ public class MyThreadExtendThread extends Thread{ private int i; //重写Thread的run方法来创建用户线程类的执行体 ...

2017-06-25 11:05:49 272 0

原创 二叉树排序及二叉树节点的增删改查(java实现)

**此处为二叉树节点类**package search.binaryTreeSearch; /** * 二叉树节点 * @author jeker-chen * */ public class Node { int data; Node leftNode ; Nod...

2017-06-19 10:42:15 2998 0

原创 Java虚拟机运行时数据区

运行时数据区域java虚拟机在执行java程序过程中会把他所管理的内存划分为若干个不同的数据区域。java虚拟机运行时数据区 方法区(线程共享区),虚拟机栈,本地方法栈,堆(线程共享区),程序计数器 1.程序计数器程序计数器是一块较小的内存空间,他可以看作当前线程所执行的字节码指示器。每条线程...

2017-04-15 15:38:57 245 0

原创 使用java语言实现八皇后问题

八皇后问题,在一个8X8的棋盘中,放置八个棋子,每个棋子的上下左右,左上左下,右上右下方向上不得有其他棋子。正确答案为92中,接下来用java语言实现。解:package eightQuen;/** * 八皇后问题 * * @author 83771 * */ public class...

2017-03-15 09:38:14 420 0

原创 AOP编程简介及其在Spring框架中的使用

AOP编程简介及其在Spring框架中的使用额,最近一直没来逛自己的博客发现游客蛮多的:),从前段时间开始就一直在学ssh框架(已经搞定strut2和hibernate),javaweb的框架还是蛮多的吧,现在的ssm好像比较流行,不过既然手头有本ssh的书再加上自己没学过框架的知识,所以就先从s...

2016-06-19 02:20:14 963 0

原创 hibernate的many-to-many的示例

hibernate的many-to-many的示例————不管失败成功,我只想认真活一生! 为java工程师奋斗的我!小弟刚刚结束三大框架里的struts2,马马虎虎吧,也不知道到底掌...

2016-05-28 01:51:19 620 0

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