随笔分类 - Java
摘要:原文地址:带你了解 MyBatis 插件设计演化过程 博客地址:http://www.extlight.com 之前写过一篇 《Mybatis 插件实现动态设置参数》 文章,介绍了 Mybatis 插件的扩展和使用。笔者在空闲时间梳理了一下 MyBatis 插件的工作原理,在此记录和分享其插件功能代
阅读全文
摘要:原文地址:不得不知道的补码知识 博客地址:http://www.extlight.com 无论什么编程语言,其代码最终都会被编译解释成计算机可读取和运行的二进制数据。 其中,数字在二进制数据中可划分成原码、补码和反码。 表示法 原码:数值前面增了一位符号位 例如:10 和 -10 的二进制表示如下:
阅读全文
摘要:原文地址:XXL-JOB 基础教程 博客地址:http://www.extlight.com 一、背景 随着公司的产品项目活动的增加,活动进行过程中都需要用到大量定时器。为了能方便快捷的控制定时器的启动、执行和关闭,我们弃用了 Spring Boot 中自带的 @Scheduled 注解,采用开发、
阅读全文
摘要:原文地址:RabbitMQ 实现延迟队列 博客地址:http://www.extlight.com 一、背景 最近开发一个活动功能,需要在活动结束后给榜单 Top10 用户发放奖励。由于活动的榜单是通过 RabbitMQ 进行异步统计分值排名的,因此在活动结束时队列中可能还存在消息未消费完全,排名不
阅读全文
摘要:原文地址:浅析 ThreadLocal 博客地址:http://www.extlight.com 一、介绍 根据 Java 官方文档的描述,我们可知 ThreadLocal 类用于提供线程内部的局部变量,其在多线程环境下能保证各个线程内部变量的隔离性。 换言之,ThreadLocal 提供线程内的局
阅读全文
摘要:原文地址: "Logback 整合 RabbitMQ 实现统一日志输出" 博客地址: 一、前言 公司项目做了集群实现请求分流,由于线上或多或少会出现请求失败或系统异常,为了查看失败请求的日志信息,我们得将所有服务的日志文件都打开来进行问题的定位分析,操作起来非常麻烦。因此,我们开发组决定设计一套日志
阅读全文
摘要:原文地址: "JWT 基础教程" 博客地址: 一、前言 针对前后端分离的项目,大多是通过 token 进行身份认证来进行交互,今天将介绍一种简单的创建 token 的方式 JWT。 二、基本介绍 2.1 定义 JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用 JWT
阅读全文
摘要:原文地址: "Spring Boot 整合 FastDFS 客户端" 博客地址: 一、前言 前两篇介绍整体上介绍了通过 Nginx 和 FastDFS 的整合来实现文件服务器。但是,在实际开发中对图片或文件的操作都是通过应用程序来完成的,因此,本篇将介绍 Spring Boot 整合 FastDFS
阅读全文
摘要:原文地址: "Spring Cloud 入门 之 Feign 篇(三)" 博客地址: 一、前言 在上一篇文章 "《Spring Cloud 入门 之 Ribbon 篇(二)》" 中介绍了 Ribbon 使用负载均衡调用微服务,但存在一个问题:消费端每个请求方法中都需要拼接请求服务的 URL 地址,存
阅读全文
摘要:原文地址: "Spring Cloud 入门 之 Ribbon 篇(二)" 博客地址: 一、前言 上一篇 "《Spring Cloud 入门 之 Eureka 篇(一)》" 介绍了微服务的搭建,服务注册与发现。但在文章中留了一个小尾巴 如何正确使用 Eureka 进行服务发现并调用服务。 本篇文章将
阅读全文
摘要:原文地址: "Spring Cloud 入门 之 Eureka 篇(一)" 博客地址: 一、前言 Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可
阅读全文
摘要:原文地址: "Mybatis 插件实现动态设置参数" 博客地址: 一、背景 笔者在搭建架构时,通常会利用泛型对 dao 层 和 service 层公共的代码(增删改)进行抽取,但是遇到一个尴尬的问题,就是实体类中的时间设置。 解决办法有很多,简单的方法就是在 web 层接收实体类参数后直接设置时间即
阅读全文
摘要:原文地址: "Spring AOP 实现读写分离" 博客地址: 一、前言 上一篇 "《MySQL 实现主从复制》" 文章中介绍了 MySQL 主从复制的搭建,为了在项目上契合数据库的主从架构,本篇将介绍在应用层实现对数据库的读写分离。 二、原理 配置主从数据源,当接收请求时,执行具体方法之前(拦截)
阅读全文
摘要:原文地址: "Dubbo 基础教程" 博客地址: 一、前言 当服务越来越多时,容量的评估,小服务资源的浪费等问题逐渐显现,此时需要增加一个调度中心基于访问压力实时管理集群容量,提供集群利用率。其中,用于提高机器利用率的资源调度和治理中心是关键。 二、Dubbo 简介 2.1 概念 Dubbo 是阿里
阅读全文
摘要:原文地址: "Spring Boot 入门之消息中间件篇(五)" 博客地址: 一、前言 在消息中间件中有 2 个重要的概念:消息代理和目的地。当消息发送者发送消息后,消息就被消息代理接管,消息代理保证消息传递到指定目的地。 我们常用的消息代理有 JMS 和 AMQP 规范。对应地,它们常见的实现分别
阅读全文
摘要:原文地址: "Lombok 简单入门" 博客地址: 一、前言 Lombok 是一个 Java 库,它作为插件安装至编辑器中,其作用是通过简单注解来精简代码,以此达到消除冗长代码的目的。 二、简单介绍 2.1 优点 1) 通过注解自动生成成员变量的 getter、setter 等方法,使代码简洁 2)
阅读全文
摘要:原文地址: "Shiro 基础教程" 博客地址: 一、前言 Apache Shiro 是 Java 的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。 二、介绍 2.1 功能特点 Shiro 包含 10 个内容,如下图: 1)
阅读全文
摘要:原文地址: "Spring Boot 入门之缓存和 NoSQL 篇(四)" 博客地址: 一、前言 当系统的访问量增大时,相应的数据库的性能就逐渐下降。但是,大多数请求都是在重复的获取相同的数据,如果使用缓存,将结果数据放入其中可以很大程度上减轻数据库的负担,提升系统的响应速度。 本篇将介绍 Spri
阅读全文
摘要:原文地址: "Spring Boot 入门之持久层篇(三)" 博客地址: 一、前言 上一篇 "《Spring Boot 入门之 Web 篇(二)》" 介绍了 Spring Boot 的 Web 开发相关的内容,项目的开发离不开数据,因此本篇开始介绍持久层相关的知识。 二、整合 JdbcTemplat
阅读全文
摘要:原文地址: "Spring Boot 入门之 Web 篇(二)" 博客地址: 一、前言 上一篇 "《Spring Boot 入门之基础篇(一)》" 介绍了 Spring Boot 的环境搭建以及项目启动打包等基础内容,本篇继续深入介绍 Spring Boot 与 Web 开发相关的知识。 二、整合模
阅读全文