随笔分类 - Java知识图谱
摘要:一、序言 在Web开发中,总有一些接口需要暴露在用户认证前访问,短信发送接口特别是短信验证码注册接口便是其中典型的一类,这类接口具有如下特点: 流量在用户认证之前 流量在用户认证之前,意味着无法获取用户ID等唯一标识符信息对流量限流 手机号未知 手机号未知意味着无法对待发送短信的手机号做精准检测,判
阅读全文
摘要:一、序言 Java多线程编程线程池被广泛使用,甚至成为了标配。 线程池本质是池化技术的应用,和连接池类似,创建连接与关闭连接属于耗时操作,创建线程与销毁线程也属于重操作,为了提高效率,先提前创建好一批线程,当有需要使用线程时从线程池取出,用完后放回线程池,这样避免了频繁创建与销毁线程。 // 任务
阅读全文
摘要:定时任务使用指南 如果你想做定时任务,有高可用方面的需求,或者仅仅想入门快,上手简单,那么选用它准没错。 定时任务模块是对Quartz框架进一步封装,使用更加简洁。 1、引入依赖 <dependency> <groupId>xin.altitude.cms</groupId> <artifactId
阅读全文
摘要:一、序言 目前企业级主流使用的Java版本是8,垃圾回收器支持手动修改为G1,G1垃圾回收器是Java 11的默认设置,因此G1垃圾回收器可以用很长时间,现阶段垃圾回收器优化意味着针对G1垃圾回收器优化。 为了简化讨论,下面假设针对4C/16G物理机器进行优化。 二、G1概览 (一)了解G1 1、最
阅读全文
摘要:一、序言 在并发场景中,当热点缓存Key失效时,流量瞬间打到数据库中,此所谓缓存击穿现象;当大范围的缓存Key失效时,流量也会打到数据库中,此所谓缓存雪崩现象。 当使用分布式行锁时,能够有效解决缓存击穿问题;当使用分布式表锁时,能够解决缓存雪崩问题。实际操作中,分布式表锁不在考虑范围,理由是降低并发
阅读全文
摘要:一、序言 空值异常是应用运行时常见的异常,传统方式为了编写健壮的应用,常常使用多层嵌套逻辑判断回避空指针异常。Java8新特性之Optional为此类问题提供了优雅的解决方式。 广大程序员朋友对空值异常刻骨铭心,因此Optional一经推出,广受赞誉。 二、问题复原 (一)素材准备 public c
阅读全文
摘要:一、序言 UCode Cms管理系统是面向企业级应用软件开发的脚手架。当前版本1.3.4。快速体验: git clone https://gitee.com/decsa/demo-cms.git (一)项目特点 1、源码开源 源码开源并且使用MIT开源许可协议,个人或者企业用户免费放心使用,项目源码
阅读全文
摘要:一、序言 UCode Cms 是一款Maven版的Java源代码生成器,是快速构建项目的利器。代码生成器模块属于可拆卸模块,即按需引入。代码生成器生成SSM(Spring、SpringBoot、MybatisPlus)风格的源代码。 面试时经常提到面向对象编程,实际开发中常常是面向数据库编程,随着需
阅读全文
摘要:一、序言 本文承接[Mybatis缓存体系探究],提供基于MybatisPlus技术可用于生产环境下的二级缓存解决方案。 1、前置条件 掌握MyBatis二级缓存的原理 有关MyBatis缓存原理内容,参考[Mybatis缓存体系探究] 选择符合条件的MybatisPlus版本 本方案对Mybati
阅读全文
摘要:
一、序言 Java8 是一个里程碑式的版本,凭借如下新特性,让人对其赞不绝口。 Lambda 表达式给代码构建带来了全新的风格和能力; Steam API 丰富了集合操作,拓展了集合的能力; 新日期时间 API 千呼万唤始出来; 随着对 Java8 新特性理解的深入,会被 Lambda 表达式(包含
阅读全文

摘要:一、序言 (一)背景内容 软件应用技术架构中DAO层最常见的选型组件为MyBatis,熟悉MyBatis的朋友都清楚,曾几何时MyBatis是多么的风光,使用XML文件解决了复杂的数据库访问的难题。时至今日,曾经的屠龙者终成恶龙,以XML文件为基础的数据库访问技术变得臃肿、复杂,维护难度直线上升。
阅读全文
摘要:一、序言 Jenkins 是一款自动化构建工具,能够基于 Maven 构建后端 Java 项目,也能够基于 nodejs 构建前端 vue 项目,并且有可视化 web 界面。 所谓自动化构建是按照一定的策略执行打包脚本,相对于普通脚本构建,Jenkins 有如下优势: 构建队列中能够同时构建多个项目
阅读全文
摘要:一、序言 Redis高可用有两种模式:哨兵模式和集群模式,本文基于哨兵模式搭建一主两从三哨兵Redis高可用服务。 1、目标与收获 一主两从三哨兵Redis服务,基本能够满足中小型项目的高可用要求,使用Supervisor监控并管理Redis实例。通过本文将完成如下目标: 哨兵模式服务规划与搭建 哨
阅读全文
摘要:一、序言 使用Nginx作为web应用服务时,会代理如下常见文件:js、css、JSON、图片等,本文提供基于Nginx内置的压缩技术,提供网络请求响应速度的解决方案。 1、网络压缩原理 网络压缩的原理是消耗CPU资源,减少文件在公网传输的大小,提高响应速度。相比于CPU的计算资源,网络带宽通常较为
阅读全文
摘要:Supervisor是多进程管理工具,在Docker中相关联的进程能够通过supervisor来管理。微服务项目开发阶段,可用于微服务子项目的启动管理。支持web可视化管理,能够极大方面开发者对项目状态的监控和重启管理。
阅读全文