后端
文章平均质量分 84
温柔一刀-关小西
这个作者很懒,什么都没留下…
展开
-
带你了解 MyBatis 插件设计演化过程
原文地址:带你了解 MyBatis 插件设计演化过程博客地址:http://www.extlight.com之前写过一篇 《Mybatis 插件实现动态设置参数》 文章,介绍了 Mybatis 插件的扩展和使用。笔者在空闲时间梳理了一下 MyBatis 插件的工作原理,在此记录和分享其插件功能代码的演化过程。一、原始代码我们简略 MyBatis 执行 SQL 的步骤,下边的原始代码是依靠 Executor 执行 SQL 语句。interface Executor { void execu.原创 2021-07-07 16:58:13 · 129 阅读 · 0 评论 -
不得不知道的补码知识
原文地址:不得不知道的补码知识博客地址:http://www.extlight.com无论什么编程语言,其代码最终都会被编译解释成计算机可读取和运行的二进制数据。其中,数字在二进制数据中可划分成原码、补码和反码。表示法原码:数值前面增了一位符号位例如:10 和 -10 的二进制表示如下:# 10 的原码0000 1010# -10 的原码1000 1010其中,最高位表示符号位,0 表示正数,1 表示负数。反码:在原码的基础上,符号位不变,其余位取反继续以上边的 -10 为.原创 2021-05-31 15:41:38 · 342 阅读 · 0 评论 -
Hexo Boot 博客系统介绍
原文地址:Hexo Boot 博客系统介绍博客地址:http://www.extlight.com一、Hexo BootHexo Boot 是基于 Spring Boot + MySQL 开发的一套开源的博客系统。前身是 ml-blog 博客系统,在此基础上演变和扩展而来。二、扩展功能Hexo Boot 博客系统除了继承 ml-blog 博客系统的文章管理、分类管理、系统参数设置等功能外,还扩展了以下功能。2.1 评论、留言功能轻松查看网友的评论与留言,及时互动2.2 友链功能与网友.原创 2021-05-27 15:04:47 · 715 阅读 · 0 评论 -
XXL-JOB 基础教程
原文地址:XXL-JOB 基础教程博客地址:http://www.extlight.com一、背景随着公司的产品项目活动的增加,活动进行过程中都需要用到大量定时器。为了能方便快捷的控制定时器的启动、执行和关闭,我们弃用了 Spring Boot 中自带的 @Scheduled 注解,采用开发、配置和操作更为灵活的 XXL-JOB。二、介绍2.1 简单介绍XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即.转载 2021-01-19 11:42:04 · 697 阅读 · 0 评论 -
RabbitMQ 实现延迟队列
原文地址:RabbitMQ 实现延迟队列博客地址:http://www.extlight.com一、背景最近开发一个活动功能,需要在活动结束后给榜单 Top10 用户发放奖励。由于活动的榜单是通过 RabbitMQ 进行异步统计分值排名的,因此在活动结束时队列中可能还存在消息未消费完全,排名不准确,此时发放活动奖励必然会出错。那么,如果解决这个问题呢? 与产品经理协商,允许延迟 10 分钟发放奖励。目前有 2 个方案:使用定时器:判断当前时间与活动结束时间的时间差,如果 >= 10分钟就.转载 2020-11-25 16:15:35 · 123 阅读 · 0 评论 -
浅析 ThreadLocal
原文地址:浅析 ThreadLocal博客地址:http://www.extlight.com一、介绍根据 Java 官方文档的描述,我们可知 ThreadLocal 类用于提供线程内部的局部变量,其在多线程环境下能保证各个线程内部变量的隔离性。换言之,ThreadLocal 提供线程内的局部变量,不同线程之间不会相互干扰,该变量作用范围贯穿线程的生命周期,减少同一线程内多个方法或组件之间一些公共变量传递的复杂度。二、使用2.1 常用方法返回值方法名描述Tget().转载 2020-11-09 10:35:48 · 159 阅读 · 0 评论 -
Spring Cloud 入门 之 Config 篇(六)
原文地址:Spring Cloud 入门 之 Config 篇(六)博客地址:http://www.extlight.com一、前言随着业务的扩展,为了方便开发和维护项目,我们通常会将大项目拆分成多个小项目做成微服务,每个微服务都会有各自配置文件,管理和修改文件起来也会变得繁琐。而且,当我们需要修改正在运行的项目的配置时,通常需要重启项目后配置才能生效。上述的问题将是本篇需要解决的问题...转载 2019-04-02 19:35:01 · 318 阅读 · 0 评论 -
Spring Cloud 入门 之 Zuul 篇(五)
原文地址:Spring Cloud 入门 之 Zuul 篇(五)博客地址:http://www.extlight.com一、前言随着业务的扩展,微服务会不对增加,相应的其对外开放的 API 接口也势必增多,这不利于前端的调用以及不同场景下数据的返回,因此,我们通常都需要设计一个 API 网关作为一个统一的 API 入口,来组合一个或多个内部 API。二、简单介绍2.1 API 网关使...转载 2019-03-26 10:09:57 · 452 阅读 · 0 评论 -
Spring Cloud 入门 之 Hystrix 篇(四)
原文地址:Spring Cloud 入门 之 Hystrix 篇(四)博客地址:http://www.extlight.com一、前言在微服务应用中,服务存在一定的依赖关系,如果某个目标服务调用慢或者有大量超时造成服务不可用,间接导致其他的依赖服务不可用,最严重的可能会阻塞整条依赖链,最终导致业务系统崩溃(又称雪崩效应)。上述的问题将是本篇需要解决的问题。二、简单介绍2.1 请求熔...转载 2019-03-19 10:41:48 · 217 阅读 · 0 评论 -
Flyway 简单入门教程
原文地址:Flyway 简单入门教程博客地址:http://www.extlight.com一、前言Flyway 是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Java 代码中,不仅支持 Comma...转载 2019-03-22 10:49:53 · 2048 阅读 · 0 评论 -
Spring Boot 整合 FastDFS 客户端
原文地址:Spring Boot 整合 FastDFS 客户端博客地址:http://www.extlight.com一、前言前两篇介绍整体上介绍了通过 Nginx 和 FastDFS 的整合来实现文件服务器。但是,在实际开发中对图片或文件的操作都是通过应用程序来完成的,因此,本篇将介绍 Spring Boot 整合 FastDFS 客户端来实现对图片/文件服务器的访问。如果有不了解 ...转载 2018-10-22 09:55:02 · 2921 阅读 · 2 评论 -
Spring Cloud 入门 之 Ribbon 篇(二)
原文地址:SpringCloud 入门 之 Ribbon 篇(二) 博客地址:http://www.extlight.com一、前言上一篇《Spring Cloud 入门 之 Eureka 篇(一)》 介绍了微服务的搭建,服务注册与发现。但在文章中留了一个小尾巴–如何正确使用 Eureka 进行服务发现并调用服务。本篇文章将介绍如何使用 Ribbon 完成发现服务的...转载 2018-07-06 13:05:38 · 437 阅读 · 0 评论 -
Spring Boot 入门之 Web 篇(二)
原文地址:Spring Boot 入门之 Web 篇(二) 博客地址:http://www.extlight.com一、前言上一篇《Spring Boot 入门之基础篇(一)》介绍了 Spring Boot 的环境搭建以及项目启动打包等基础内容,本篇继续深入介绍 Spring Boot 与 Web 开发相关的知识。二、整合模板引擎由于 jsp 不被 Sprin...转载 2018-04-01 11:46:06 · 12131 阅读 · 4 评论 -
Spring Boot 入门之持久层篇(三)
原文地址:Spring Boot 入门之持久层篇(三) 博客地址:http://www.extlight.com一、前言上一篇《Spring Boot 入门之 Web 篇(二)》介绍了 Spring Boot 的 Web 开发相关的内容,项目的开发离不开数据,因此本篇开始介绍持久层相关的知识。二、整合 JdbcTemplate2.1 添加依赖&lt...转载 2018-04-01 11:48:04 · 1793 阅读 · 1 评论 -
Spring Boot 入门之缓存和 NoSQL 篇(四)
原文地址:Spring Boot 入门之缓存和 NoSQL 篇(四) 博客地址:http://www.extlight.com一、前言当系统的访问量增大时,相应的数据库的性能就逐渐下降。但是,大多数请求都是在重复的获取相同的数据,如果使用缓存,将结果数据放入其中可以很大程度上减轻数据库的负担,提升系统的响应速度。本篇将介绍 Spring Boot 中缓存和 NoSQL...转载 2018-04-01 11:49:24 · 1196 阅读 · 0 评论 -
Spring Boot 入门之消息中间件篇(五)
原文地址:Spring Boot 入门之消息中间件篇(五) 博客地址:http://www.extlight.com一、前言在消息中间件中有 2 个重要的概念:消息代理和目的地。当消息发送者发送消息后,消息就被消息代理接管,消息代理保证消息传递到指定目的地。我们常用的消息代理有 JMS 和 AMQP 规范。对应地,它们常见的实现分别是 ActiveMQ 和 Rabbi...转载 2018-04-01 11:50:36 · 967 阅读 · 0 评论 -
Shiro 基础教程
原文地址:Shiro 基础教程 博客地址:http://www.extlight.com一、前言Apache Shiro 是 Java 的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。二、介绍2.1 功能特点Shiro 包含 10 个内容,如下图:1) Authen...转载 2018-04-01 11:52:48 · 463 阅读 · 1 评论 -
Mybatis 插件实现动态设置参数
原文地址:Mybatis 插件实现动态设置参数 博客地址:http://www.extlight.com一、背景笔者在搭建架构时,通常会利用泛型对 dao 层 和 service 层公共的代码(增删改)进行抽取,但是遇到一个尴尬的问题,就是实体类中的时间设置。解决办法有很多,简单的方法就是在 web 层接收实体类参数后直接设置时间即可。但是,web 层理论上只是调用 se...转载 2018-06-13 14:11:12 · 3116 阅读 · 0 评论 -
Spring Cloud 入门 之 Feign 篇(三)
原文地址:Spring Cloud 入门 之 Feign 篇(三) 博客地址:http://www.extlight.com一、前言在上一篇文章《Spring Cloud 入门 之 Ribbon 篇(二)》 中介绍了 Ribbon 使用负载均衡调用微服务,但存在一个问题:消费端每个请求方法中都需要拼接请求服务的 URL 地址,存在硬编码问题且不符合面向对象编程思想。如果服...转载 2018-07-10 14:40:48 · 317 阅读 · 0 评论 -
Spring Cloud 入门 之 Eureka 篇(一)
原文地址:Spring Cloud 入门 之 Eureka 篇(一) 博客地址:http://www.extlight.com一、前言Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风...转载 2018-07-04 16:21:12 · 565 阅读 · 0 评论 -
Spring Boot 入门之基础篇(一)
原文地址:Spring Boot 入门之基础篇(一) 博客地址:http://www.extlight.com一、前言Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。本系列以快速入门为主,可当作工具小手册阅读...转载 2018-04-01 11:44:50 · 67581 阅读 · 13 评论