Logo

Java

  • Published on
    随着人工智能技术的飞速发展,AI 辅助编程工具正逐渐成为软件开发领域的新宠。在众多工具中,**Cursor** 无疑是一颗冉冉升起的新星。Cursor 的 Composer 支持多文件同时修改不仅能显著提升工程师的生产力,还通过与 claude-3.5-sonnet/gpt-4 等顶尖模型的深度集成,为开发者带来更智能、更高效的编码 体验。
  • Published on
    在软件开发的世界里,良好的架构设计对于项目的成功至关重要。本文将探讨《架构整洁之道》一书中的核心概念和原则,帮助开发者构建更加健壮、灵活的系统。
  • Published on
    Spring Boot Admin是一个用于管理和监控Spring Boot应用程序的Web应用。它将每个应用视为客户端并注册到管理服务器。底层利用了Spring Boot Actuator端点的功能。
  • Published on
    Thymeleaf是一个可以与Spring无缝集成的Java模板引擎。除了基本功能外,Thymeleaf还提供了一系列实用工具对象,可以帮助我们在应用中处理常见任务。
  • Published on
    在现代软件开发的世界里,编辑器和 IDE(集成开发环境)是开发者不可或缺的工具。然而,这些工具之间的竞争与选择往往让开发者头疼不已。有些人忠于老牌的 Visual Studio,另一些人则更喜欢轻量级的 Visual Studio Code,还有些人选择了更为专注的 JetBrains 系列。然而,这些工具彼此割裂,难以统一。这一切可能会因为一款名为 Cursor 的下一代 AI 编辑器而彻底改变。
  • Published on
    Disruptor 是一种高性能的消息传递框架,最初由 LMAX 交易所开发,旨在解决高并发环境下的性能瓶颈问题。它的设计理念是通过减少锁的使用和内存屏障的数量,从而实现低延迟和高吞吐量的消息传递。本文将对 Disruptor 的核心代码进行解析,帮助大家理解其工作原理。
  • Published on
    RBAC 是一种安全模型,它将系统访问权限限制为授权用户。在 Odoo 中,这意味着不同的用户根据其角色拥有不同的访问权限级别。每个角色都由一组权限定义,确保用户只能访问其特定任务所需的数据和功能。
  • Published on
    最近收到了运维的提醒,说我们一天 ES 日志的占用空间超过了 200G,我心里一惊,一刀切把日志设置成 ERROR 级别肯定不合理,会影响业务,只能考虑怎么通过环境变量或者配置动态设置日志级别。本文将介绍如何实现这一目标,并配置默认日志级别。
  • Published on
    在Spring Boot项目中,可以使用Logback作为日志框架,配置实现不打印包含关键字的日志。关键字过滤可以帮助开发人员快速定位问题,不输出包含特定关键字的日志信息。
  • Published on
    ```Java 反例: Controller 里面直接传入的是 DO 对象 public ResultDTO<String> savePersonalFinance(@ApiParam @RequestBody AccountEcomFinanceAuditDO entity, @RequestHeader(value = "Accept-Language") String language) { String bizId = ecomFinanceAuditService.savePersonalFinance(entity, language); return ResultDTO.ok(bizId); } ```
  • Published on
    Crawlab是一个功能强大的开源爬虫管理平台,支持多种编程语言,包括Java。下面是一个简易指南,帮助您开始使用Crawlab Java爬虫。
  • Published on
    在微服务架构中,Kubernetes(简称为 k8s)已经成为了不可或缺的基础设施管理工具。而Spring Boot和Dubbo作为常见的Java开发框架和RPC框架,在微服务中也广泛应用。在这篇博客中,我们将探讨如何在Kubernetes环境下,实现Spring Boot + Dubbo应用的优雅停机,确保服务不会出现中断或数据丢失的情况。
  • Published on
    无论我们意识到与否,我们在网络服务和应用程序编程接口(API)的世界中无处不在,但许多 API 的使用却令人头痛。你是否曾经使用某个外部服务的 API 连接时心想:“他们到底在想什么?”我们有过这样的经历,通过 API 连接服务可能会令人困惑。不管是因为设计不佳、文档缺失、频繁变更还是存在 Bug,使用 API 往往都是一种挑战。
  • Published on
    在 Java 编程世界中,垃圾回收(Garbage Collection, GC)是一个既神秘又重要的话题。它像一个默默工作的清洁工,在幕后管理着我们的内存资源。今天,让我们揭开 Java GC 的神秘面纱,一起探索这个fascinating的世界!
  • Published on
    在使用Spring AMQP和RabbitMQ进行消息驱动的微服务开发时,一个常见的场景是在同一个应用中配置多个RabbitMQ的容器(`Container`)以连接不同的队列,以处理不同类型的消息。这时,开发者可能会考虑出于资源利用和管理的便利,让这些容器共用一个`ContainerFactory`。虽然这听起来是一个节省资源和简化配置的好主意,但在实际操作中,如果处理不当,这种做法可能会带来一些问题和挑战,以下是几个常见的坑和相应的解决方案。
  • Published on
    Java 类加载机制是Java虚拟机(JVM)的核心组成部分之一,它负责动态加载、链接和初始化类或接口。这个机制不仅涉及到性能,还直接关联到Java程序的安全性和运行时的动态性。在深入理解Java类加载的威力之前,我们需要先掌握类加载的时机、过程以及类加载器的工作原理。
  • Published on
    在当今的软件开发和运维领域,应用的可观测性(Observability)已成为确保系统健康、效率和用户满意度的重要组成部分。这篇博客将深入探讨可观测性的三大核心要素:日志(Logging)、追踪(Tracing)和度量(Metrics),并探索它们如何协同工作,为软件团队提供全面的系统洞察。
  • Published on
    🔍 您是否曾在软件开发完毕后,焦急地想知道它是否能稳如泰山?或者当新功能上线时,是否会在不知不觉中触发一系列“多米诺骨牌效应”?不用担心,API测试就是您的防线。本文将深入探讨API测试的九大方法,确保您的应用在任何风险面前都能坚不可摧。
  • Published on
    🔐 PGP(Pretty Good Privacy)在数字通信中的使用主要涵盖四种场景:加签(Signing)、验签(Verifying)、加密并加签(Encrypting and Signing)、以及解密并验签(Decrypting and Verifying)。这些场景体现了PGP在确保通信安全性和身份验证方面的多样性和复杂性。
  • Published on
    在现今互联网的世界里,API身份验证是确保我们数据安全的重要方式。从 Basic Authentication 到 OAuth,每一种认证方法都有其独特的应用场景和优势。这篇文章我们会详细分享几种常见认证方式及其使用场景,让大家在实际应用中可以快速和准确的使用最适合自己的认证方式。 ## 🔑 基本认证(Basic Authentication) 这是最简单的认证方式,就像是直接使用用户名和密码这把钥匙开锁。
  • Published on
    随着Web应用程序的普及和发展,网络攻击成为了一个严重的问题。其中,CSRF(Cross-Site Request Forgery)攻击是一种非常常见的攻击方式。攻击者可以利用这种漏洞欺骗用户执行恶意操作,如恶意转账、修改用户信息等。为了提高应用程序的安全性,我们必须采取措施保护Web应用程序,其中之一就是CSRF保护机制。本文将介绍Spring Security中的CSRF保护机制,并提供一些示例和实践建议,以帮助开发人员实现更安全的Web应用程序。
  • Published on
    在数字化的世界中,电子邮件已成为我们日常生活的重要组成部分。对于程序员来说,实时收取特定邮箱的邮件可能是一个常见且关键的需求。在这里,我将介绍如何使用 Java 和 IMAP(Internet Mail Access Protocol)协议,打造一个能够实时收取邮件的客户端程序。
  • Published on
    Cookies是服务器发送到用户浏览器并保存在本地的小型文本文件。它们通常用于跟踪用户的登录状态、记录用户偏好设置以及存储其他与用户相关的信息。当用户访问同一网站时,浏览器会自动将Cookies发送回服务器,以便服务器可以根据之前存储的信息来提供个性化服务。
  • Published on
    在云原生技术迅猛发展的当下,Java 作为一种成熟且广泛使用的编程语言,正面临着前所未有的挑战和机遇。本文将深入探讨 Java 在云原生时代的发展趋势和应对策略。
  • Published on
    为了更高效的运行应用程序,JVM 选择将内存划分为栈空间和堆空间。 每当我们声明新变量和对象、调用新方法、声明 String 或执行类似操作时,JVM 都会在栈或堆空间里面操作指定内存。在这篇文章里面,我们将简要介绍 JVM 的内存模型以及它们的主要功能,然后我们将介绍它们是如何存储在内存里面,以及会在哪里使用到它们。最后,我们将分几个维度总结它们之间的主要区别。
  • Published on
    Java 应用 CPU 飙高是我们在日常开发中经常会遇到的问题,本文总结了一种通用的问题定位流程,以及不同问题原因对应的解决方法,让我们在遇到相关问题的时候有非常清晰的思路,助力我们更高效的定位并解决相关线上问题。
  • Published on
    JVM(Java虚拟机)日志伪造是指攻击者通过修改或篡改JVM的日志文件,以隐藏或操纵系统中发生的实际事件,从而欺骗用户或系统管理员。
  • Published on
    Spring JPA 是 Spring Framework 提供的一种简化数据访问层的方法,它通过使用注解方式简化了数据库操作的实现。本文将为读者介绍 Spring JPA 的使用指南,帮助读者更好地理解和应用 Spring JPA。
  • Published on
    Dapr(分布式应用程序运行时)和Service Mesh是两种在微服务架构中管理复杂应用程序的主流系统架构。尽管它们都提供了解决微服务挑战的解决方案,但它们在设计和实现方式以及解决不同问题的重点上存在一些差异。本文将探讨Dapr和Service Mesh之间的区别,并比较它们的应用场景和优缺点。
  • Published on
    ## What?什么是 Mock Server Mock 是模拟的意思。在测试中,通常表述为:对测试过程中不容易构造或者不容易获取的物件,用一个虚拟的物件来进行模拟的一个过程。能够提供 Mock 功能的服务就叫作 Mock Server。 Mock Server 通过模拟真实的服务,提供对来自客户端请求的真实响应。
  • Published on
    当需要将数据写入文件、发送到网络或写入存储时,通常需要使用序列化技术。序列化将数据转换为特定的表示形式,以便在读取时进行反序列化。这个过程也被称为编码和解码。序列化作为传输数据的表示形式与网络框架和通信协议解耦,因此选择适合的序列化方式显得尤为重要。
  • Published on
    内存溢出是指程序申请内存时,没有足够的内存可以使用;内存溢出通常是由内存泄露引起的,常见的场景是由于有问题的代码申请完内存,却没有及时有效释放,长此以往,程序就申请不到内存,从而导致内存溢出。
  • Published on
    ZGC是一种可扩展和低延迟的JVM垃圾回收器,能够实现大规模Java程序的快速内存分配和回收。在处理高负载情况下,ZGC表现出色,而且它能够与现有的Java应用程序平滑地集成。本文将详细介绍ZGC的原理、配置和使用示例。
  • Published on
    在当今数据驱动的世界中,处理海量数据已成为许多企业面临的关键挑战。如果你正在寻找一个强大的解决方案来应对这一挑战,那么Java与Cassandra的组合将是你的不二之选。本文将带你深入探索如何利用Java和Cassandra构建高性能、可扩展的大数据处理系统。
  • Published on
    在 Spring 的海洋中,@Lookup 注解就像一把瑞士军刀,小巧却功能强大。它能够在运行时动态创建依赖,为我们的代码注入灵活性。今天,让我们一起揭开 @Lookup 注解的神秘面纱,看看它如何成为解决复杂依赖问题的秘密武器。
  • Published on
    在这个AI快速发展的时代,你是否想过如何让你的业务系统也拥有"智能推理"的能力?今天,让我们一起探索Java世界中最强大的规则引擎之一 - Drools,看它如何通过反向推理的魔法,为你的系统注入一丝人工智能的味道。
  • Published on
    想象一下,你正在建造一座摩天大楼。你会使用劣质材料吗?当然不会!同样,在软件开发中,代码质量就是我们的"建筑材料"。一个由糟糕代码构建的项目,就像一座用泥巴和稻草搭建的摩天大楼 - 迟早会倒塌。
  • Published on
    你是否曾经好奇过Java Stream的内部工作原理?它们是否像其他资源一样需要被关闭?今天,让我们一起揭开Java Stream的神秘面纱,探索这个常被忽视的问题!
  • Published on
    在Java的世界里,处理文件路径是一项常见任务。而`Paths.get()`和`Path.of()`这两个方法,就像是文件操作领域的双子星,闪耀在Java开发者的工具箱中。今天,让我们一起揭开它们的神秘面纱,看看这对双胞胎有何异同!
  • Published on
    Spring Shell是一个用于构建功能完整的命令行界面(CLI)的框架。它提供了一个交互式shell,可以处理命令并利用Spring编程模型。
  • Published on
    1. 应用层:为应用程序提供网络服务 2. 传输层:负责端到端的数据传输 3. 网络层:处理数据包的路由 4. 数据链路层:负责物理传输