![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
东溪陈姓少年
软件工程师(物联网&车联网行业)
技术栈:
DevOps,自动化测试,CI/CD,微服务,Java…
联系方式:
email:cg837718548@icloud.com
qq:837718548
wechat:cg8377
展开
-
使用Spring Boot DevTools优化你的开发体验
场景再现某日少年收到前端同学发来的消息说联调的接口响应异常????,少年表现的很平静????,因为这种事情太平常了????。于是询问详情之后开始打开自己的代码查找问题所在,没过五分钟就发现了问题。少年修改完代码之后将本地启动的项目停止然后再重新启动。由于当前的服务端项目是一个巨大的单体应用,启动需要花三四分钟时间,于是少年就拿出手机开始刷起朋友圈。刷着刷着(由于注意力分散不知不觉花了十几分钟)突然意识到项目已经重新启动,于是通知前端同学查看效果。分析问题上面的场景可能对很多开发者来说感同身受,在开发中原创 2020-08-24 12:40:00 · 234 阅读 · 0 评论 -
云原生时代高性能Java框架—Quarkus(二)
——— 构建Quarkus本地镜像、容器化部署Quarkus项目Quarkus系列博文Quarkus&GraalVM介绍、创建并启动第一个项目构建Quarkus本地镜像、容器化部署Quarkus项目…概览上一篇文章主要介绍了Quarkus以及给Quarkus提供“神力”的Java虚拟机GraalVM,并演示了如何安装GraalVM以及Quarkus的初步用法。本文将主要指向Quarkus的“亮点”——本地化应用程序。以下是本文的两个目标:将Quarkus开发的Java应用程原创 2020-07-24 11:14:52 · 595 阅读 · 0 评论 -
云原生时代高性能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 · 1479 阅读 · 0 评论 -
[译]高性能缓存库Caffeine介绍及实践
概览本文我们将介绍Caffeine-一个Java高性能缓存库。缓存和Map之间的一个根本区别是缓存会将储存的元素逐出。逐出策略决定了在什么时间应该删除哪些对象,逐出策略直接影响缓存的命中率,这是缓存库的关键特征。Caffeine使用Window TinyLfu逐出策略,该策略提供了接近最佳的命中率。添加依赖首先在pom.xml文件中添加Caffeine相关依赖:<dependency> <groupId>com.github.ben-manes.caffeine<原创 2020-07-04 20:31:34 · 321 阅读 · 0 评论 -
图解resilience4j容错机制
Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计。轻量级,因为库只使用Vavr,它没有任何其他外部库依赖项。相比之下,Netflix Hystrix对Archaius有一个编译依赖关系,Archaius有更多的外部库依赖关系,如Guava和Apache Commons。Resilience4j提供高阶函数(decorators)来增强任何功能接口、lambda表达式或方法引用,包括断路器、速率限制器、重试或舱壁。可以在任.原创 2020-06-29 15:05:05 · 507 阅读 · 0 评论 -
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 · 1036 阅读 · 0 评论 -
除了FastJson,你也应该了解一下Jackson(二)
概览上一篇文章介绍了Jackson中的映射器ObjectMapper,以及如何使用它来实现Json与Java对象之间的序列化和反序列化,最后介绍了Jackson中一些序列化/反序列化的高级特性。而本文将会介绍Jackson中的一些常用的(序列化/反序列化)注解,并且通过示例来演示如何使用这些注解,从而来提高我们在处理Json上的工作效率。序列化注解@JsonAnyGetter@JsonAnyGetter注解允许灵活地使用映射(键值对,如Map)字段作为标准属性。我们声明如下Java类:@Dat原创 2020-06-09 12:35:19 · 251 阅读 · 0 评论 -
除了FastJson,你也应该了解一下Jackson(一)
在上月末的时候收到一条关于fastjson安全漏洞的消息,突然想到先前好像已经有好多次这样的事件了(在fastjson上面)。关于安全方面,虽然中枪的机率微小,但是在这个信息越来越复杂的时代,安全性也变得越来越重要,就像DevSecOps的诞生,在软件交付的整个价值流中我们也需要注重安全这方面。当然我们现在不谈关于FastJson的优劣,因为我们本文的目标是让大家了解和掌握Jackson。概览Jackson是一个非常流行和高效的基于Java的库,它可以序列化java对象或将java对象映射到JSON,原创 2020-06-06 11:22:52 · 168 阅读 · 0 评论 -
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 · 1148 阅读 · 0 评论 -
Spring Boot Admin简介及实践
问题在若干年前的单体应用时代,我们可以相对轻松地对整个业务项目进行健康检查、指标监控、配置管理等等项目治理。如今随着微服务的发展,我们将大型单体应用按业务模型进行划分,以此形成众多小而自治的微服务,我们品尝到了微服务的甜头:异常隔离、独立部署和发布、服务伸缩、便于协作开发…我们的项目服务更加解耦合,高可用。但与此同时这也给我们带来了很多挑战,众多服务的健康检查、指标监控问题、配置管理、日志聚合问题、异常排查问题等等。我们急切需要一些工具或者手段来尽可能地解决这些问题,从而让我们收获微服务的最大化利益。原创 2020-05-11 16:09:33 · 304 阅读 · 0 评论 -
SpringBoot Admin简介
Hello!我创建了一个Spring Boot Admin的分享资料,欢迎下载。????点这里原创 2020-05-06 11:05:27 · 138 阅读 · 0 评论 -
[译]按功能(特性)分包
一种流行的方法是通过技术层面对项目进行分包。但是这种方法有一些缺点。相反,我们可以按功能分包并创建独立自治的程序包。结果是一个易于理解且不易出错的代码库。整体分析按照技术分包造成的缺点:对属于某个功能的所有类的概述不佳。通用代码、重用代码和复杂代码趋向于难以理解,并且由于难以把握变更的影响,因此变更很容易破坏其他功能用例。按功能分包从而创建包含功能所需的所有类的程序包。好处...原创 2020-05-05 14:02:12 · 300 阅读 · 0 评论 -
聊聊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 · 291 阅读 · 0 评论 -
使用Reactor响应式编程
介绍响应式编程响应式编程不同于我们熟悉的命令式编程,我们熟悉的命令式编程即代码就是一行接一行的指令,按照它们的顺序一次一条地出现。一个任务被执行,程序就需要等到它执行完了,才能执行下一个任务。每一步,数据都需要完全获取到了才能被处理,因此它需要作为一个整体来处理。但是所谓的响应式编程**是函数式和声明式的。响应式流处理数据时只要数据是可用的就进行处理,而不是需要将数据作为一个整体进行提供。事实...原创 2020-04-28 11:31:08 · 1378 阅读 · 1 评论 -
Spring Data REST不完全指南(三)
上一篇我们介绍了使用Spring Data REST时的一些高级特性,以及使用代码演示了如何使用这些高级的特性。本文将继续讲解前面我们列出来的七个高级特性中的后四个。至此,这些特性能满足我们大部分的接口开发场景。需要满足的一些要求:1.针对字段级别,方法级别,类级别进行限制(禁止某些字段,方法,接口的对外映射)。2.对数据增删改查的限制(禁止某些请求方法的访问)。3.能个性化定义请求的路...原创 2020-04-23 18:01:48 · 430 阅读 · 0 评论 -
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 · 460 阅读 · 0 评论 -
[译]谈谈SpringBoot 事件机制
要“监听”事件,我们总是可以将“监听器”作为事件源中的另一个方法写入事件,但这将使事件源与监听器的逻辑紧密耦合。对于实际事件,我们比直接方法调用更灵活。我们可以根据需要动态注册和注销某些事件的侦听器。我们还可以为同一事件设置多个侦听器。本教程概述了如何发布和侦听自定义事件,并解释了 Spring Boot 的内置事件。为什么我应该使用事件而不是直接方法调用?事件和直接方法调用都适合于不同...原创 2020-04-20 17:50:24 · 279 阅读 · 0 评论 -
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 · 379 阅读 · 0 评论 -
使用Maven Archetype创建Java项目模板
1.over view简而言之,Archetype是一个Maven项目模板工具包。原型被定义为一种原始的模式或模型,所有其他同类的东西都是从中产生的。当我们试图提供一个提供生成Maven项目的一致方法的系统时,这个名字就合适了。Archetype将帮助作者为用户创建Maven项目模板,并为用户提供生成这些项目模板的参数化版本的方法。使用原型提供了一种很好的方法,可以与您的项目或组织所采用的最佳...原创 2020-04-15 16:01:45 · 511 阅读 · 0 评论 -
tdd测试开发不完全指南
tdd测试驱动开发不完全指南⚠️:我录制了一个关于tdd测试驱动开发的分享视频,欢迎收看。原创 2020-04-14 13:47:52 · 200 阅读 · 0 评论 -
hibernate的many-to-many的示例
hibernate的many-to-many的示例————不管失败成功,我只想认真活一生! 为java工程师奋斗的我!小弟刚刚结束三大框架里的struts2,马马虎虎吧,也不知道到底掌握的如何。那么就这么算过去了。前两天开始了第二个框架,hibernate!额,学了也快三天了吧,里面的门原创 2016-05-28 01:51:19 · 836 阅读 · 0 评论 -
jsp的七个动作指令
jsp的七个动作指令原创 2016-05-18 10:27:56 · 1441 阅读 · 0 评论 -
struts2框架入门级Demo(简易用户登录)
struts2框架入门级Demo原创 2016-05-20 02:11:09 · 777 阅读 · 0 评论 -
使用java语言实现八皇后问题
八皇后问题,在一个8X8的棋盘中,放置八个棋子,每个棋子的上下左右,左上左下,右上右下方向上不得有其他棋子。正确答案为92中,接下来用java语言实现。解:package eightQuen;/** * 八皇后问题 * * @author 83771 * */public class eight { // 定义一个数组 表示棋盘 public static Intege原创 2017-03-15 09:38:14 · 566 阅读 · 0 评论 -
Java虚拟机运行时数据区
运行时数据区域java虚拟机在执行java程序过程中会把他所管理的内存划分为若干个不同的数据区域。java虚拟机运行时数据区 方法区(线程共享区),虚拟机栈,本地方法栈,堆(线程共享区),程序计数器1.程序计数器程序计数器是一块较小的内存空间,他可以看作当前线程所执行的字节码指示器。每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立储存,我们称这类内存区域为“线程私有”的内原创 2017-04-15 15:38:57 · 318 阅读 · 0 评论 -
二叉树排序及二叉树节点的增删改查(java实现)
**此处为二叉树节点类**package search.binaryTreeSearch;/** * 二叉树节点 * @author jeker-chen * */public class Node { int data; Node leftNode ; Node rightNode ; public Node(int data, Node leftNod原创 2017-06-19 10:42:15 · 3612 阅读 · 0 评论 -
java创建线程的三种方式
一. 类继承Thread类创建线程/** *继承Thread类创建线程的方式 */public class MyThreadExtendThread extends Thread{ private int i; //重写Thread的run方法来创建用户线程类的执行体 @Override public void run() { //迭代输出0到1原创 2017-06-25 11:05:49 · 376 阅读 · 0 评论