
如何搭建高性能Java网络框架 MINA
 **1.介绍** Apache MINA 是一个网络应用框架,有助于用户非常方便地开发高性能、高伸缩性的网络应用。它通过J...
 **1.介绍** Apache MINA 是一个网络应用框架,有助于用户非常方便地开发高性能、高伸缩性的网络应用。它通过J...
Ping Identity 公司披露了其 PingAM Java 代理程序中存在的一个严重安全漏洞,该代理程序是其身份与访问管理(IAM)平台的关键组件。这一漏洞被认定为 CVE-2025-20059,属于相对路径遍历问题,攻击者可能借此绕过策略执行机制,对受保护资源进行未经授权的访问。 根据官方安全公告,该漏洞影响 PingAM Java 代理程序的所有受支持版本,具体如下...
一、前言 {#一、前言} ------------ 要搭建传统 Spring MVC 项目,我们除了需要配置相应的配置文件,还需要在文件中声明包扫描路径,注解驱动,处理器映射器、适配器和视图解析器等相关配置,搭建步骤非常繁琐。 而 **Spring Boot** 则是通过 JavaConfig 的方式将以前繁琐的配置封装起来,我们只需要引入依赖即可完成相应组件的整合。 二...
一、前言 {#一、前言} ------------ 在N年前整理过 **Spring Boot** 的入门教程,当时还是 1.x 的内容。如今 **Spring Boot** 已经升级到 3.x 版本,不过版本之间的使用差距不大,此次发布文章仅当作常规知识以及新版本功能的补充。 如果你已经掌握 **Spring** 和 **SpringMVC** 知识,但还不熟 **Spr...
一、前言 {#一、前言} ------------ 本篇是对 **CountDownLoatch** 工具类的实际场景运用的简单补充,通过 **CountDownLoatch** 实现多线程下载器核心功能。 二、实现原理 {#二、实现原理} ---------------- 使用多线程对目标资源进行分块下载(设置 Range 请求头)提升下载效率,当所有分块下载完成后,再...
一、前言 {#一、前言} ------------ 本篇的介绍对象是 **CountDownLatch** ,它同样是基于 **AQS** 之上扩展的一款多线程场景下的工具类,它可以使一个或多个线程等待其他线程各自执行完毕后再执行。 对于 **CountDownLatch** 理解,我们可以将单次拆开为 **CountDown** 和 **Latch** 。**CountD...
一、前言 {#一、前言} ------------ 在高并发访问的场景下,为了保证项目不被大流量请求的压力影响性能导致项目运行崩溃,常用的解决方案就是**限流** 和**服务降级**。 本篇介绍 **Semaphore** , 直译就是信号量,是基于 **AQS** 扩展的一种多线程并发控制的工具,也就是我们常说的**限流**工具之一。 二、工作原理 {#二、工作原理} ...
一、前言 {#一、前言} ------------ flex 是 flexible Box 的缩写,意为**弹性布局**,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定 flex 布局。 二、布局原理 {#二、布局原理} ---------------- 采用 flex 布局的元素成为 flex 容器。其所有子元素会自动成为容器成员,成为 flex 项目。 通过...
一、前言 {#一、前言} ------------ **AQS** 是抽象的队列同步器,是用来构建锁或其他同步组件的重量级基础框架及整个 **JUC** 体系的基石。 二、相关组件 {#二、相关组件} ---------------- 下边的组件都是基于 **AQS** 框架扩展实现的: * **ReentrantLock**:可重入锁,避免多线程竞争资源的安全问题 *...
简单介绍 {#简单介绍} ------------ **LockSupport** 是用来创建锁和其他同步类的基本线程阻塞原语,是线程等待唤醒机制的一种实现工具类。 等待唤醒机制 {#等待唤醒机制} ---------------- **等待唤醒机制** 是线程中的一种协作机制。多线程之间不单有竞争锁的情况,还有相互协作的场景。比如线程A执行完某一操作需要挂起一段时间,将...