摘要:
1. 简介 Spring Security是一个功能强大且易于扩展的安全框架,主要用于为Java程序提供用户认证(Authentication)和用户授权(Authorization)功能。 用户认证指的是验证某个用户是否合法,即验证用户名密码是否正确;用户授权指的是验证用户是否拥有访问资源的权限。 阅读全文
摘要:
1. 部署Docker Docker 安装并部署Tomcat、Mysql8、Redis 2. 创建示例项目 创建项目 修改pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2 阅读全文
摘要:
1. 字符函数 length(获取字节数,UTF-8编码中 一个汉字占3个字节,GBK编码中一个汉字占2个字节) select length('abc'); #结果:3 select length('张三'); #结果:6 concat(拼接字符串) select concat('a', 'b', 阅读全文
摘要:
1. 简介 SpringBoot项目部署虽然简单,但是经常因为修改了少量代码而需要重新打包上传服务器重新部署,而公网服务器的网速受限,可能整个项目的代码文件仅仅只有1-2MB甚至更少,但是需要上传几十MB甚至更大的jar包而受限整体的部署速度。 项目基本稳定后,lib引入的jar很少再有更新了,假如 阅读全文
摘要:
1. 悲观锁 / 乐观锁 在Java和数据库中都存在悲观锁和乐观锁的应用。Mysql锁机制中的悲观锁和乐观锁请查看: Mysql锁机制--悲观锁和乐观锁 悲观锁:在获得数据时先加锁,只到数据操作(更新)完成,确保不会被其他线程所影响。例如:Java中synchronized关键字和Lock的实现类都 阅读全文
摘要:
1. CAS简介 在计算机科学中,比较和交换(Compare And Swap)是用于实现多线程同步的原子指令。它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。这是作为单个原子操作完成的。 原子性保证新值基于最新信息计算;如果该值在同一时间被另一个线程更新 阅读全文
摘要:
1. 复现问题 import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * 复现问题 * * @author CL * */ public class RecurrenceProblem { publ 阅读全文
摘要:
1. DockerHub查看rabbitmq镜像版本 Docker Hub RabbitMQ 注意:latest版本没有管理界面,需要管理界面请选择management版本。 2. 安装Docker Docker 安装并部署Tomcat、Mysql8、Redis 3. 安装RabbitMQ 搜索镜像 阅读全文
摘要:
1. Consul简介 Consul是HashiCorp公司推出的开源软件,它提供了一套分布式高可用可横向扩展的解决方案,能为微服务提供服务治理、健康检查、配置共享等能力。 Eurake2.x停止更新后,Spirng Cloud官网也推荐使用Consul实现服务注册与发现。并且可以代替Sping C 阅读全文
摘要:
1. Consul简介 Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发,基于 Mozilla Public License 2.0 的协议进行开源。Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 阅读全文