自定义博客皮肤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

  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot Admin简介

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

2020-05-06 11:05:27 132

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

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

2020-04-14 13:47:52 196

原创 Chrome OS超便捷安装指南

Chrome OS是一款Google开发的基于PC的操作系统。 Google Chrome OS是一款基于Linux的开源操作系统。Google在自己的官方博客表示,初期,这一操作系统将定位于上网本、紧凑型以及低成本电脑。这款开源软件将被命名为Chrome OS,谷歌公司于2010年12月7日(北京时间12月8日2点30分)在美国举行Chrome相关产品发布会,发布会上正式发布[Chrome ...

2021-03-07 21:50:00 2105

原创 [译]2020年Spring状态报告

近日VMware发布了2020年Spring状态报告,该报告调查了1000多位不同行业的springboot开发者、架构师、技术经理等角色,以了解企业当前如何使用Spring以及他们未来的发展计划。VMware抓取最引人注目的数据和见解,汇编成一个简单的报告。对其中的数字进行了分析,发现:推动企业Spring发展的因素最受欢迎的Spring Boot模块和功能计划将Spring...

2020-09-22 14:57:00 235

原创 使用Spring Boot DevTools优化你的开发体验

场景再现某日少年收到前端同学发来的消息说联调的接口响应异常????,少年表现的很平静????,因为这种事情太平常了????。于是询问详情之后开始打开自己的代码查找问题所在,没过五分钟就发现了问题。少年修改完代码之后将本地启动的项目停止然后再重新启动。由于当前的服务端项目是一个巨大的单体应用,启动需要花三四分钟时间,于是少年就拿出手机开始刷起朋友圈。刷着刷着(由于注意力分散不知不觉花了十几分钟)突然意识到项目已经重新启动,于是通知前端同学查看效果。分析问题上面的场景可能对很多开发者来说感同身受,在开发中

2020-08-24 12:40:00 227

原创 云原生时代高性能Java框架—Quarkus(二)

——— 构建Quarkus本地镜像、容器化部署Quarkus项目Quarkus系列博文Quarkus&GraalVM介绍、创建并启动第一个项目构建Quarkus本地镜像、容器化部署Quarkus项目…概览上一篇文章主要介绍了Quarkus以及给Quarkus提供“神力”的Java虚拟机GraalVM,并演示了如何安装GraalVM以及Quarkus的初步用法。本文将主要指向Quarkus的“亮点”——本地化应用程序。以下是本文的两个目标:将Quarkus开发的Java应用程

2020-07-24 11:14:52 580

原创 云原生时代高性能Java框架—Quarkus(一)

——— Quarkus&GraalVM介绍、创建并启动第一个项目Quarkus系列博文Quarkus&GraalVM介绍、创建并启动第一个项目构建Quarkus本地镜像、容器化部署Quarkus项目…Quarkus介绍Quarkus 是一个为 **Java 虚拟机(JVM)和原生编译(native compilation)**而设计的全栈Kubernetes 原生 Java 框架,用于优化Java特别是Java项目的容器化,并使其成为serverless、云和 Kuber

2020-07-17 23:39:37 1465

原创 【译】GraalVM—下一代JVM介绍

原标题:GraalVM – an introduction to the next level JVM随着Red Hat宣布Quarkus作为…为GraalVM和HotSpot量身定制的下一代Kubernetes原生Java框架,使用一流的Java库和标准构建https://quarkus.ioRed Hat展示的Quarkus示例项目的启动速度和内存消耗给我留下了深刻的印象。令人印象深刻的主要原因之一是,代码是用GraalVM**提前(ahead-of-time,AOT)**编译成本机映像(n

2020-07-16 22:43:27 785

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

概览本文我们将介绍Caffeine-一个Java高性能缓存库。缓存和Map之间的一个根本区别是缓存会将储存的元素逐出。逐出策略决定了在什么时间应该删除哪些对象,逐出策略直接影响缓存的命中率,这是缓存库的关键特征。Caffeine使用Window TinyLfu逐出策略,该策略提供了接近最佳的命中率。添加依赖首先在pom.xml文件中添加Caffeine相关依赖:<dependency> <groupId>com.github.ben-manes.caffeine&lt

2020-07-04 20:31:34 311

原创 图解resilience4j容错机制

Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计。轻量级,因为库只使用Vavr,它没有任何其他外部库依赖项。相比之下,Netflix Hystrix对Archaius有一个编译依赖关系,Archaius有更多的外部库依赖关系,如Guava和Apache Commons。Resilience4j提供高阶函数(decorators)来增强任何功能接口、lambda表达式或方法引用,包括断路器、速率限制器、重试或舱壁。可以在任.

2020-06-29 15:05:05 489

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

Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计。轻量级,因为库只使用Vavr,它没有任何其他外部库依赖项。相比之下,Netflix Hystrix对Archaius有一个编译依赖关系,Archaius有更多的外部库依赖关系,如Guava和Apache Commons。Resilience4j提供高阶函数(decorators)来增强任何功能接口、lambda表达式或方法引用,包括断路器、速率限制器、重试或舱壁。可以在任.

2020-06-25 10:19:34 976

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

概览上一篇文章介绍了Jackson中的映射器ObjectMapper,以及如何使用它来实现Json与Java对象之间的序列化和反序列化,最后介绍了Jackson中一些序列化/反序列化的高级特性。而本文将会介绍Jackson中的一些常用的(序列化/反序列化)注解,并且通过示例来演示如何使用这些注解,从而来提高我们在处理Json上的工作效率。序列化注解@JsonAnyGetter@JsonAnyGetter注解允许灵活地使用映射(键值对,如Map)字段作为标准属性。我们声明如下Java类:@Dat

2020-06-09 12:35:19 241

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

在上月末的时候收到一条关于fastjson安全漏洞的消息,突然想到先前好像已经有好多次这样的事件了(在fastjson上面)。关于安全方面,虽然中枪的机率微小,但是在这个信息越来越复杂的时代,安全性也变得越来越重要,就像DevSecOps的诞生,在软件交付的整个价值流中我们也需要注重安全这方面。当然我们现在不谈关于FastJson的优劣,因为我们本文的目标是让大家了解和掌握Jackson。概览Jackson是一个非常流行和高效的基于Java的库,它可以序列化java对象或将java对象映射到JSON,

2020-06-06 11:22:52 159

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

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

2020-05-24 13:59:34 3288

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

Over View上一篇文章主要介绍了Spring Boot Admin的概况以及我们如何在系统中引入和使用Spring Boot Admin,以此来帮助我们更加了解自己的系统,做到能快速发现、排查问题。本篇文章将用代码演示Spring Boot Admin的消息通知功能,并利用这个开箱即用的特性来个性化我们的需求,优化我们在服务治理方面的工作效率。Spring Boot Admin内置了多种开箱即用的系统通知渠道,包括邮件、Slack、Telegram、Hipchat等多种社交媒体的通知渠道。但是考虑

2020-05-15 09:48:45 1125

原创 Spring Boot Admin简介及实践

问题在若干年前的单体应用时代,我们可以相对轻松地对整个业务项目进行健康检查、指标监控、配置管理等等项目治理。如今随着微服务的发展,我们将大型单体应用按业务模型进行划分,以此形成众多小而自治的微服务,我们品尝到了微服务的甜头:异常隔离、独立部署和发布、服务伸缩、便于协作开发…我们的项目服务更加解耦合,高可用。但与此同时这也给我们带来了很多挑战,众多服务的健康检查、指标监控问题、配置管理、日志聚合问题、异常排查问题等等。我们急切需要一些工具或者手段来尽可能地解决这些问题,从而让我们收获微服务的最大化利益。

2020-05-11 16:09:33 287

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

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

2020-05-05 14:02:12 289

转载 好记性不如视觉笔记

**摘要:**视觉笔记,是将笔记内容与结构抽象,以可视化的方式呈现的笔记术。一些使用文字难以描述的情感和关系,通过图形化的转化将内容可视化。可以展示出文字背后的思考脉络,在阅读的同时,也能唤起对当时的思索与对未来的想象。人到中年,总是逃不过这样的话题————日渐稀松的发顶、日渐膨胀的肉体、日渐薄弱的记忆力… 但这些都不可怕,我们可以植发、可以运动、那么关于最最后一项,大家可能会说,老生常谈,...

2020-04-30 13:49:39 188

原创 聊聊Spring Boot Actuator

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

2020-04-28 17:40:28 276

原创 使用Reactor响应式编程

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

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

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

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

2020-04-23 18:01:48 400

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

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

2020-04-21 21:56:30 446

原创 Gitflow分支管理策略

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

2020-04-21 11:12:00 805

原创 详解Gitflow分支管理策略

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

2020-04-21 11:08:16 566 1

原创 [译]谈谈SpringBoot 事件机制

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

2020-04-20 17:50:24 265

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

简介Spring Data REST是Spring Data项目的一部分,可轻松在Spring Data存储库上构建超媒体驱动的REST Web服务。Spring Data REST 构建在 Spring 数据存储库之上,分析应用程序的域模型,并公开模型中包含的聚合的超媒体驱动的 HTTP 资源。特征:使用 HAL 媒体类型来公开域模型的 REST API。适用集合、项目(item)和...

2020-04-20 14:22:57 363

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

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

2020-04-18 00:06:50 396

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

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

2020-04-15 16:01:45 499

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

1.sonarQube的简介SonarQube是一款自动化代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查。其工作流程如下:如图SonarQube由以下4个组件组成:1.SonarQube Server:WebServer:供开发人员,管理人员浏览高质量的快照并配置SonarQube实例Search Serve...

2020-04-10 12:28:42 993

原创 Java – Try with Resources

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

2020-04-09 12:34:00 682

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

1.Testcontainers介绍:Testcontainers是一个Java库,它支持JUnit测试,提供公共数据库、SeleniumWeb浏览器或任何可以在Docker容器中运行的轻量级、一次性实例。测试容器使以下类型的测试更加容易:数据访问层集成测试:使用MySQL,PostgreSQL或Oracle数据库的容器化实例测试您的数据访问层代码,但无需在开发人员的计算机上进行...

2020-04-07 15:09:00 546

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

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

2020-04-06 10:59:00 94

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

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

2020-04-03 16:44:00 1684

原创 JUint Mockito使用入门

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

2020-03-31 15:21:00 111

原创 JUnit 5基础指南

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

2020-03-31 12:28:00 144

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

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

2020-02-18 15:34:00 81

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

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

2019-12-16 14:20:00 133

原创 solr索引基本原理

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

2019-12-14 12:07:00 1081

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

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

2019-12-14 11:24:00 3463

原创 java异常有效实践

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

2019-12-12 16:29:00 81

springboot admin.pdf

Spring Boot Admin是一个社区项目,用于管理和监视Spring Boot应用程序。 这些应用程序在Spring Boot Admin客户端中注册(通过HTTP),或者使用 Spring Cloud(例如Eureka,Consul)发现。2014年由codecentric发布。

2020-05-06

测试驱动开发介绍及实践.pptx

TDD测试驱动开发讲稿,配合技术分享视频:https://www.bilibili.com/video/BV1t64y1u7C1

2020-05-01

空空如也

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

TA关注的人

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