随笔分类 - JAVA
基于Grafana自动化运维巡检API集成方案
摘要:场景 某应用平台已经有Grafana面板,我们编写实现监控Grafana的API指标,实现自动化监控与巡检数据流图 解决方案概述 要实现通过Spring Boot程序与Grafana告警HTTP API进行交互,自动化运维告警,可以按照以下步骤进行:Grafana 配置:配置Grafana的数据源(
阅读全文
使用 JUnit 5.7 进行参数化测试:深入了解 @EnumSource
摘要:使用 JUnit 5.7 进行参数化测试:深入了解 @EnumSource 参数化测试允许开发人员使用一系列输入值高效地测试他们的代码。在 JUnit 测试领域,经验丰富的用户长期以来一直在努力解决实施这些测试的复杂问题。但随着 JUnit 5.7 的发布,测试参数化进入了一个新时代,为开发人员提供
阅读全文
Spring Boot无需Dockerfile创建Docker镜像三种方法
摘要:Spring Boot无需Dockerfile创建Docker镜像三种方法 随着技术的发展,服务于终端用户请求的应用程序的部署方式也发生了变化。传统上,你需要用一台机器来部署应用程序,然后决定机器的配置,以保证应用程序的运行。容器的引入,即把整个软件堆栈打包成一个单一的实体并进行运输,解决了开发人员
阅读全文
现代化个人网站构建与部署方法
摘要:现代化个人网站构建与部署方法Hugo 作为静态网站生成器,是一个将 Markdown 转化为漂亮的静态网站的工具AWS S3 用于托管网站本身Docker 用于运行 Hugo 并从的 Markdown 文件生成网站网站仍然使用 Hugo,托管在云负载平衡器后面的谷歌云存储(GCS)上。使用 Clou
阅读全文
gRpc客户端与测试
摘要:大多数使用 REST 的系统间通信组件都以 JSON 格式序列化其有效载荷。目前,JSON 缺乏广泛使用的模式验证标准: JSON 模式尚未普及。标准模式验证允许将验证工作委托给第三方库,然后就可以完成验证。如果没有标准,我们就必须在代码中进行手动验证。更糟糕的是,我们必须让验证代码与模式保持同步。
阅读全文
一些研发工程师在Springboot注意点
摘要:一些研发工程师在Springboot注意点1. 正确设计代码目录结构虽然您有很大的自由度,但有一些基本规则值得遵循来设计您的源代码结构。避免使用默认包。确保所有内容(包括入口点)都在命名良好的包中,这样您就可以避免与组装和组件扫描相关的意外情况;将 Application.java(应用程序的入口类
阅读全文
ServiceA不应该直接调用ServiceB派生的Dao方法
摘要:ServiceA不应该直接调用ServiceB派生的Dao方法 背景 服务层单元测试是指针对应用程序中服务层代码的测试。服务层通常包含业务逻辑和数据处理代码,因此服务层单元测试的目标是验证这些代码的正确性和可靠性。通过编写针对服务层方法的测试用例,并模拟服务层的依赖项,我们可以在隔离环境中对服务层代
阅读全文
应用系统-业务逻辑写入在分层结构中Service层
摘要:应用系统-业务逻辑写入在分层结构中Service层 近日,关于我们某同学在研发过程中一些设计问题,再次回归老生常谈的问题:业务逻辑写在哪儿一层? 过去二十年软件开发过程中,大部分开发者喜欢使用存储过程(SP),用SP解决一系列业务处理过程,在信息系统中时常听到有SP的存储。各大数据库厂商也对存储过程
阅读全文
Maven多模块构建加速方案
摘要:Maven多模块构建加速方案 拥有大量 Maven 模块会减慢项目构建和测试运行速度。为了维护多模块项目结构并快速运行测试,我们开发了一个新工具--Maven 模块合并器,它帮助我们将某些构建时间从 50 分钟缩短到 12 分钟。在本文中,我将详细介绍 Maven 模块合并器帮助我们解决了哪些问题,
阅读全文
WebSocket容量规划核对表与框架性测测试
摘要:WebSocket连接 WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,
阅读全文
基于Docker的JMeter分布式压测
摘要:一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试。如本网站所示,一个JMeter实例将能够控制许多其他的远程JMeter实例,并对你的应用程序产生更大的负载。JMeter使用Java RMI[远程方法调用]来与分布式网络中的对象进行交互。JMeter主站和从站的通信如下图所示:
阅读全文
为JUnit测试提供高效的对象存储
摘要:从PostgreSQL下载一个相对较大的二进制数据文件的问题。在存储和获取这些数据方面有几个限制(所有的限制都可以在官方文档中找到)。为了解决这个问题,有人建议找到更合适的数据存储。由于一些内部原因,众所周知的Amazon S3桶被选为这个目的。这个选择影响了项目的单元测试基础。仍然不可能继续使用轻
阅读全文
使用Java Faker模拟测试数据
摘要:当你需要为你的单元测试想出有用的测试数据时,你是否也经常没有灵感?不要担心,Java Faker来救你了!在这篇博客中,你将学习如何生成你的测试数据。在这篇博客中,你将学习如何生成你的测试数据。 1. 简介 编写测试数据是编写测试时最难的任务之一。通常你会在使用数字的时候看到123,或者在需要名字的
阅读全文
利用Apache Pulsar的实时边缘计算
摘要:由于网络和基础设施的限制,企业发现越来越难在数据中心或云中移动和处理所有设备产生的数据而不出现延迟或性能问题。因此,边缘应用正在兴起。根据Gartner的估计,到2025年,75%的企业数据将在数据中心或云之外创建和处理。 什么是边缘计算?边缘应用在数据源上或附近运行,如物联网设备和本地边缘服务器,
阅读全文
保护Java应用程序不被窃取数据和源代码2
摘要:保护Java应用程序不被窃取数据和源代码2 前面的文章提及保护Java应用程序不被窃取数据和源代码1,今天我们继续 黑客如何利用外部依赖性注入不需要的代码 只需要做两件事: 控制maven(或任何其他公共仓库)中的第三方依赖,并发布带有恶意软件的新版本(或替换现有的发布版本)。 希望客户的应用程序使
阅读全文
保护Java应用程序不被窃取数据和源代码1
摘要:保护Java应用程序不被窃取数据和源代码1 在这篇文章中,我们回顾了如何在JVM中注入恶意软件代码/嗅探JVM的流量/等可能的方法。这篇文章的主要目的是解释如何保护你的应用程序。计划是进行下一步的攻击。 从Dump中读取敏感数据。 通过在外部依赖中注入恶意软件来窃取源代码。 从Java Dump中窃
阅读全文
站在巨人肩膀上Java coding styles
摘要:站在巨人肩膀上Java coding styles 可读性是这里的主要考虑因素。几乎可以肯定,你不会是唯一的人阅读你写的代码。而你能为下一个阅读你的代码的人做的最好的事情就是遵守惯例。一致的编写风格不仅有助于创建好看的代码,而且还使代码更容易理解。Twitter指南指定了一个例外,我们倾向于同意:"
阅读全文
SpringCloud微服务架构案例-共享服务中心
摘要:微服务开发以spring-boot和spring-cloud技术为基础框架,基于微服务架构的业务应用,建立场景全过程领域驱动模型,系统总体框架如下图所示。系统总体架构分为资源层、数据层、服务层、应用层和接入层。资源层基于一体化平台,提供云基础设施、云平台组件等基础资源;数据层基于全业务统一数据中心,
阅读全文
源代码之整洁代码
摘要:源代码之整洁代码 经常在研发面试中,询问代码质量是什么?能讲出核心点的人并不多,对于你自己代码是否反思过代码质量与意义吗? 有的人写了8年代码,还是没有这个意识,只能说LEVEL还是不够高。 让我们再来回顾下,整洁Clean Code代码 What Is Clean Code? The code c
阅读全文
关于进程内缓存与分布式缓存
摘要:关于进程内缓存与分布式缓存 此文仅只是一个回顾。顾名思义,进程内缓存是在与应用程序相同的地址空间内构建的对象缓存。Google Guava库提供了一个简单的进程内缓存API,这是一个很好的例子。 另一方面,分布式缓存在应用程序外部,很可能部署在形成大型逻辑缓存的多个节点上。Memcached,Red
阅读全文