首页 | 月光中的污点

月光中的污点

云在青天水在瓶

加载中...

文章列表

原创
2018-02-21

Lua 简单入门

Lua 是一种轻量小巧的脚本语言,用标准 C 语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua 可以应用在游戏开发、独立应用脚本、Web 应用脚本、扩展和数据库插件、安全系统等场景。 笔者学习的目的主要是为了能在 Web 应用(Nginx、Redis)中使用到 Lua 脚本。
阅读全文
原创
2018-01-26

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

在消息中间件中有 2 个重要的概念:消息代理和目的地。当消息发送者发送消息后,消息就被消息代理接管,消息代理保证消息传递到指定目的地。 我们常用的消息代理有 JMS 和 AMQP 规范。对应地,它们常见的实现分别是 ActiveMQ 和 RabbitMQ。 上篇文章《Spring Boot 入门之缓存和 NoSQL 篇(四)》。
阅读全文
原创
2018-01-19

RabbitMQ 工作模式介绍

之前,笔者写过《 CentOS 7.2 安装 RabbitMQ》 这篇文章,今天整理一下 RabbitMQ 相关的笔记便于以后复习。 在 RabbitMQ 官网上提供了 6 中工作模式:简单模式、工作队列模式、发布/订阅模式、路由模式、主题模式 和 RPC 模式。 本篇只对前 5 种工作方式进行介绍。
阅读全文
原创
2018-01-19

Maven 实现环境隔离

通常,一个项目在本地开发完成后,需要提交到测试环境进行测试,测试完成后最终放到生成环境运行。但是,这 3 个运行环境的配置必然有所不同。当每次提交到不同的环境都需要修改项目的配置,这些操作显得非常繁琐且容易出错。 本文将介绍使用 Maven 实现环境隔离的小技巧来避免人工修改出错,解决上述问题。 演示环境:IDEA
阅读全文
原创
2018-01-18

Lombok 简单入门

Lombok 是一个 Java 库,它作为插件安装至编辑器中,其作用是通过简单注解来精简代码,以此达到消除冗长代码的目的。 通过注解自动生成成员变量的 getter、setter 等方法,使代码简洁 修改类变量名时,无需关注其 getter、setter 等方法
阅读全文
原创
2018-01-16

Java 多线程开发之原子变量与 CAS 算法(二)

在上篇《Java 多线程开发之 volatile(一)》文章中介绍了 volatile 的相关内容,它是一个轻量级的锁,但不支持原子操作。 本篇将介绍原子操作相关内容。 CAS (Compare-And-Swap) 是一种硬件对并发的支持,针对多处理器操作而设计的处理器中的一种特殊指令,用于管理对共享数据的并发访问。
阅读全文
原创
2018-01-15

Java 多线程开发之 volatile(一)

Java 提供了一种稍弱的同步机制,即 volatile 变量,用来确保将变量的更新操作通知到其他线程。 我们可以将 volatile 看做一个轻量级的锁,但是又与锁有些不同: Java 内存模型规定了所有的变量(此处的变量是指成员变量和静态变量)都存储在主内存中,每条线程都有自己的工作内存。
阅读全文
原创
2018-01-03

WireMock 简单入门

最近公司的项目需要重构,采用前后端分离模式。由于前后端开发人员开发效率和进度的不同,前端人员在编写调用接口代码时需要伪造数据。这意味着 N 个前端人员需要维护 N 份数据,且每个前端人员可能对业务理解不同,伪造出的数据存在偏差,因此在真正与后端联调接口时会出现问题。 为了解决这一问题,我们可以使用 WireMock。
阅读全文
原创
2017-12-20

Shiro 实现 Tomcat 集群的 Session 共享

Session 共享有多种方案,之前写过《Spring Session 实现 Tomcat 集群的 Session 共享》 文章,功能实现起来非常简单和方便。 最近在学习 Shiro 框架,Shiro 也提供了会话管理的功能。如果项目中选用 Shiro 作为权限控制的方案,同时项目又需要集群,那么可以自定义 sessionDAO 来实现 Session 共享。 JDK:1.8 容器:Tomcat 8 Session 存储容器:Redis 3.2.0
阅读全文
原创
2017-12-19

Shiro 基础教程

Apache Shiro 是 Java 的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。 Shiro 包含 10 个内容,如下图:
阅读全文