自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

月光中的污点

记录点滴

  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

原创 带你了解 MyBatis 插件设计演化过程

原文地址:带你了解 MyBatis 插件设计演化过程博客地址:http://www.extlight.com之前写过一篇 《Mybatis 插件实现动态设置参数》 文章,介绍了 Mybatis 插件的扩展和使用。笔者在空闲时间梳理了一下 MyBatis 插件的工作原理,在此记录和分享其插件功能代码的演化过程。一、原始代码我们简略 MyBatis 执行 SQL 的步骤,下边的原始代码是依靠 Executor 执行 SQL 语句。interface Executor { void execu.

2021-07-07 16:58:13 107

原创 不得不知道的补码知识

原文地址:不得不知道的补码知识博客地址:http://www.extlight.com无论什么编程语言,其代码最终都会被编译解释成计算机可读取和运行的二进制数据。其中,数字在二进制数据中可划分成原码、补码和反码。表示法原码:数值前面增了一位符号位例如:10 和 -10 的二进制表示如下:# 10 的原码0000 1010# -10 的原码1000 1010其中,最高位表示符号位,0 表示正数,1 表示负数。反码:在原码的基础上,符号位不变,其余位取反继续以上边的 -10 为.

2021-05-31 15:41:38 279

原创 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 643

转载 轻松搭建专属 CDN

原文地址:轻松搭建专属 CDN博客地址:http://www.extlight.com一、背景前段时间笔者搭建一个博客系统放在服务器上,为了提高访问速度和减轻服务器访问压力,决定将页面中的静态资源使用 CDN 进行加速访问。二、选择方案常见的 CDN 方案有 BootCDN 和 jsDelivr,笔者选择后者。因为笔者编写的 jQuery 自定义插件,但无法上传到 BootCDN 上进行加速使用。而 jsDelivr 不同,它很强大,通过 GitHub 搭配 jsDelivr 可以搭建自己专.

2021-01-21 11:53:27 465

转载 XXL-JOB 基础教程

原文地址:XXL-JOB 基础教程博客地址:http://www.extlight.com一、背景随着公司的产品项目活动的增加,活动进行过程中都需要用到大量定时器。为了能方便快捷的控制定时器的启动、执行和关闭,我们弃用了 Spring Boot 中自带的 @Scheduled 注解,采用开发、配置和操作更为灵活的 XXL-JOB。二、介绍2.1 简单介绍XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即.

2021-01-19 11:42:04 662

转载 RabbitMQ 实现延迟队列

原文地址:RabbitMQ 实现延迟队列博客地址:http://www.extlight.com一、背景最近开发一个活动功能,需要在活动结束后给榜单 Top10 用户发放奖励。由于活动的榜单是通过 RabbitMQ 进行异步统计分值排名的,因此在活动结束时队列中可能还存在消息未消费完全,排名不准确,此时发放活动奖励必然会出错。那么,如果解决这个问题呢? 与产品经理协商,允许延迟 10 分钟发放奖励。目前有 2 个方案:使用定时器:判断当前时间与活动结束时间的时间差,如果 >= 10分钟就.

2020-11-25 16:15:35 111

转载 Redis 脱坑指南

原文地址:Redis 脱坑指南博客地址:http://www.extlight.com一、前言Redis 是一款 key-value 内存数据库。由于其上手快,执行效率高,拥有多种数据结构,支持持久化以及集群等功能和特点被众多互联网公司所使用。但是,如果使用和操作不当,会引起内存浪费,甚至系统宕机等严重后果。二、要点分析2.1 使用正确的数据类型在 Redis 5 种数据类型中,string 类型最为常用,也最为简单。但是,能解决问题不代表使用了正确的数据类型。例如,将一个用户(name,.

2020-11-18 09:46:27 130

转载 浅析 ThreadLocal

原文地址:浅析 ThreadLocal博客地址:http://www.extlight.com一、介绍根据 Java 官方文档的描述,我们可知 ThreadLocal 类用于提供线程内部的局部变量,其在多线程环境下能保证各个线程内部变量的隔离性。换言之,ThreadLocal 提供线程内的局部变量,不同线程之间不会相互干扰,该变量作用范围贯穿线程的生命周期,减少同一线程内多个方法或组件之间一些公共变量传递的复杂度。二、使用2.1 常用方法返回值方法名描述Tget().

2020-11-09 10:35:48 137

转载 Nginx 整合 Lua 实现动态生成缩略图

原文地址:Nginx 整合 Lua 实现动态生成缩略图博客地址:http://www.extlight.com一、前提最近在开发一个项目,涉及到缩略图的功能,常见的生成缩略图的方案有以下几个:人工创建由美工 PS 出缩略图,然后上传到服务器上进行访问。缺点:操作繁琐工具包创建上传原图到后台时,后台借用工具(如:Thumbnailator)创建缩略图缺点:无法灵活获取更多...

2019-10-09 15:38:25 284 1

转载 Spring Cloud 入门 之 Config 篇(六)

原文地址:Spring Cloud 入门 之 Config 篇(六)博客地址:http://www.extlight.com一、前言随着业务的扩展,为了方便开发和维护项目,我们通常会将大项目拆分成多个小项目做成微服务,每个微服务都会有各自配置文件,管理和修改文件起来也会变得繁琐。而且,当我们需要修改正在运行的项目的配置时,通常需要重启项目后配置才能生效。上述的问题将是本篇需要解决的问题...

2019-04-02 19:35:01 295

转载 Spring Cloud 入门 之 Zuul 篇(五)

原文地址:Spring Cloud 入门 之 Zuul 篇(五)博客地址:http://www.extlight.com一、前言随着业务的扩展,微服务会不对增加,相应的其对外开放的 API 接口也势必增多,这不利于前端的调用以及不同场景下数据的返回,因此,我们通常都需要设计一个 API 网关作为一个统一的 API 入口,来组合一个或多个内部 API。二、简单介绍2.1 API 网关使...

2019-03-26 10:09:57 433

转载 Flyway 简单入门教程

原文地址:Flyway 简单入门教程博客地址:http://www.extlight.com一、前言Flyway 是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Java 代码中,不仅支持 Comma...

2019-03-22 10:49:53 1924

转载 Spring Cloud 入门 之 Hystrix 篇(四)

原文地址:Spring Cloud 入门 之 Hystrix 篇(四)博客地址:http://www.extlight.com一、前言在微服务应用中,服务存在一定的依赖关系,如果某个目标服务调用慢或者有大量超时造成服务不可用,间接导致其他的依赖服务不可用,最严重的可能会阻塞整条依赖链,最终导致业务系统崩溃(又称雪崩效应)。上述的问题将是本篇需要解决的问题。二、简单介绍2.1 请求熔...

2019-03-19 10:41:48 202

转载 Spring Boot 整合 FastDFS 客户端

原文地址:Spring Boot 整合 FastDFS 客户端博客地址:http://www.extlight.com一、前言前两篇介绍整体上介绍了通过 Nginx 和 FastDFS 的整合来实现文件服务器。但是,在实际开发中对图片或文件的操作都是通过应用程序来完成的,因此,本篇将介绍 Spring Boot 整合 FastDFS 客户端来实现对图片/文件服务器的访问。如果有不了解 ...

2018-10-22 09:55:02 2906 2

转载 Nginx 整合 FastDFS 实现文件服务器

原文地址:Nginx 整合 FastDFS 实现文件服务器博客地址:http://www.extlight.com一、前言本篇衔接《FastDFS 环境搭建》内容进行讲解,上篇文章我们实现了图片上传的功能,但是无法通过 http 进行访问,本篇将解决该问题。建议读者先浏览《FastDFS 环境搭建》再继续浏览本篇文章。二、安装2.1 下载 fastdfs-nginx-module...

2018-10-19 10:49:20 234

转载 FastDFS 环境搭建

原文地址:FastDFS 环境搭建博客地址:http://www.extlight.com一、前言最近闲下来,整理了一下笔记,今天就分享一下 FastDFS 环境搭建吧。二、介绍2.1 FastDFS 定义FastDFS 是用 C 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 F...

2018-10-19 10:48:38 155

转载 Spring Cloud 入门 之 Feign 篇(三)

原文地址:Spring Cloud 入门 之 Feign 篇(三) 博客地址:http://www.extlight.com一、前言在上一篇文章《Spring Cloud 入门 之 Ribbon 篇(二)》 中介绍了 Ribbon 使用负载均衡调用微服务,但存在一个问题:消费端每个请求方法中都需要拼接请求服务的 URL 地址,存在硬编码问题且不符合面向对象编程思想。如果服...

2018-07-10 14:40:48 301

转载 Spring Cloud 入门 之 Ribbon 篇(二)

原文地址:SpringCloud 入门 之 Ribbon 篇(二) 博客地址:http://www.extlight.com一、前言上一篇《Spring Cloud 入门 之 Eureka 篇(一)》 介绍了微服务的搭建,服务注册与发现。但在文章中留了一个小尾巴–如何正确使用 Eureka 进行服务发现并调用服务。本篇文章将介绍如何使用 Ribbon 完成发现服务的...

2018-07-06 13:05:38 418

转载 Spring Cloud 入门 之 Eureka 篇(一)

原文地址:Spring Cloud 入门 之 Eureka 篇(一) 博客地址:http://www.extlight.com一、前言Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风...

2018-07-04 16:21:12 552

转载 highlight.js 设置行号

原文地址:highlight.js 设置行号 博客地址:http://www.extlight.com一、背景笔者在开发这套博客系统时使用 Editormd 作为 Markdown 编辑器,由于不满足其代码高亮的样式,因此选用 highlight.js 插件来实现代码高亮功能。但是,highlight.js 插件不提供行号的设置功能,于是有了该文章。二、实现原理...

2018-06-24 21:11:09 4986

转载 Jenkins 基础入门

原文地址:Jenkins 基础入门 博客地址:http://www.extlight.com一、前言Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。二、安装工作 测试环境:CentOS 7.4, IP:192.168.10.1002.1 下载...

2018-06-20 13:45:28 315

转载 Mybatis 插件实现动态设置参数

原文地址:Mybatis 插件实现动态设置参数 博客地址:http://www.extlight.com一、背景笔者在搭建架构时,通常会利用泛型对 dao 层 和 service 层公共的代码(增删改)进行抽取,但是遇到一个尴尬的问题,就是实体类中的时间设置。解决办法有很多,简单的方法就是在 web 层接收实体类参数后直接设置时间即可。但是,web 层理论上只是调用 se...

2018-06-13 14:11:12 3070

转载 Shiro 基础教程

原文地址:Shiro 基础教程 博客地址:http://www.extlight.com一、前言Apache Shiro 是 Java 的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。二、介绍2.1 功能特点Shiro 包含 10 个内容,如下图:1) Authen...

2018-04-01 11:52:48 448 1

转载 Spring Boot 入门之消息中间件篇(五)

原文地址:Spring Boot 入门之消息中间件篇(五) 博客地址:http://www.extlight.com一、前言在消息中间件中有 2 个重要的概念:消息代理和目的地。当消息发送者发送消息后,消息就被消息代理接管,消息代理保证消息传递到指定目的地。我们常用的消息代理有 JMS 和 AMQP 规范。对应地,它们常见的实现分别是 ActiveMQ 和 Rabbi...

2018-04-01 11:50:36 951

转载 Spring Boot 入门之缓存和 NoSQL 篇(四)

原文地址:Spring Boot 入门之缓存和 NoSQL 篇(四) 博客地址:http://www.extlight.com一、前言当系统的访问量增大时,相应的数据库的性能就逐渐下降。但是,大多数请求都是在重复的获取相同的数据,如果使用缓存,将结果数据放入其中可以很大程度上减轻数据库的负担,提升系统的响应速度。本篇将介绍 Spring Boot 中缓存和 NoSQL...

2018-04-01 11:49:24 1186

转载 Spring Boot 入门之持久层篇(三)

原文地址:Spring Boot 入门之持久层篇(三) 博客地址:http://www.extlight.com一、前言上一篇《Spring Boot 入门之 Web 篇(二)》介绍了 Spring Boot 的 Web 开发相关的内容,项目的开发离不开数据,因此本篇开始介绍持久层相关的知识。二、整合 JdbcTemplate2.1 添加依赖&lt...

2018-04-01 11:48:04 1779 1

转载 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 12102 4

转载 Spring Boot 入门之基础篇(一)

原文地址:Spring Boot 入门之基础篇(一) 博客地址:http://www.extlight.com一、前言Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。本系列以快速入门为主,可当作工具小手册阅读...

2018-04-01 11:44:50 67492 13

转载 Sublime Text 3 设置

原文地址:Sublime Text 3 设置 博客地址:http://www.extlight.com一、修改插件安装目录为了有效和安全管理插件,在 Sublime Text 的安装目录中创建 Data 目录(之后插件就放在该目录中)。重启 Sublime Text 后 Preferences-> Browse Package 打开的目录就指向 Data。...

2018-03-31 23:56:00 4388

转载 IntelliJ IDEA 基础设置

原文地址:IntelliJ IDEA 基础教程 博客地址:http://www.extlight.com一、前言IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合、...

2018-03-31 23:53:43 1269

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除