自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Elasticsearch

Elasticsearch 入门 索引一个文档 通过一个简单的put请求,指定id索引一个文档:PUT /customer/_doc/1 { "name":"John Doe" } customer为索引,_doc为类型,可以不写,该属性会在以后版本中废弃。如果该索引不存在会自动创建,请求成功的响应信息如下: { "_index" : "customer", "_type" : "_doc", "_id" : "1", "_version" : 1, "_seq_no" : 0,

2020-12-01 14:40:14 299

原创 synchronized与volatile

# synchronized - synchronized介绍 在《Java并发编程之美》中介绍:`synchronized`块是Java提供的一种原子性内置锁,Java中的每个对象都可以把它当作一个同步锁来使用,这些Java内置的使用者看不到的锁被称为内部锁,也叫作监视器锁。 线程进入到`synchronized`中时会自动获取内置锁,这时其他线程访问该代码块时会被挂起,直到锁释放。 - synchronized内存语义 每个线程都用自己的工作内存,当多个线程操作同一个变量时,就会出现某个线程对

2020-11-12 18:01:27 173

原创 ThreadLocal与InheritableThreadLocal实现原理

ThreadLocal实现原理 《Java并发编程之美》的介绍:ThreadLocal是JDK包提供的,它提供了线程本地变量,也就是如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地副本。当多个线程操作这个变量时,实际操作的是自己本地内存里面的变量,从而避免了线程安全问题。创建一个ThreadLocal变量后,每个线程都会复制一个变量到自己的本地内存。 set方法: public void set(T value) { //获取当前线程 Thread t

2020-11-11 16:00:26 212

原创 常用软件下载链接

链接列表 idea2019 mysql5.7 jdk8 解决下载速度慢问题 1.下载迅雷 2.在谷歌应用商店添加迅雷下载支持拓展程序

2020-09-23 02:22:47 798

原创 Unsafe提供的几个主要方法

Unsafe提供的几个主要方法 long objectFieldOffset(Field field) 返回指定的变量在所属类中的内存偏移地址,该偏移地址仅仅在该UnSafe函数中访问指定字段时使用 int arrayBaseOffset(Class arrayClass) 获取取数组中第一个元系的地址。 int arrayIndexScale(Class arrayClass) 获取数组中-个元素占用的字节 boolean compareAndSwapLong(Object obj, long offs

2020-06-12 22:27:42 517

原创 Linux基础入门

Linux基础入门 1.Linux系统基本结构 1.1系统与硬件 查看系统PIC设备 lspic命令可以列出所有的PIC设备,如主板、声卡、显示卡和网卡等,也会把USB接口设备列出来 more /proc/cpuinfo:查看CPU信息 查看物理CPU个数使用如下命令: cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 查看每个CPU中内核个数 cat /proc/cpuinfo | grep "cpu cores" ...

2020-05-24 21:28:58 616

原创 redis学习笔记

redis学习笔记 redis版本为2.8.9 字符串类型 字符串类型是`redis`中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。一个字符串类型键允许存储的数据的最大容量为512MB。 取值与赋值 set key value:赋值 get key:取值 append key value:向键值的末尾追加value,如果键不存在,则将该键的值设置为value,返回值是追加后的字符串的总长度 strlen key:返回键值的长度 mget key1 key2 key3...:返回多个键的

2020-05-13 22:54:02 619

原创 spring security oauth2授权码模式

spring security oauth2授权码模式 这里我使用的spring security版本为5.x,spring boot版本为2.x。 授权码模式是Oauth2协议最严格、流程最完整的授权模式,流程如下: A.客户端将用户导向认证服务器 B.用户决定是否给客户端授权 C.用户同意给客户端授权,认证服务器将用户导向客户端提供的url地址,并返回授权码 D客户端通过重定向url和授权...

2020-05-07 21:04:50 556

原创 Spring Security添加图形验证码

Spring Security添加图形验证码 引入所需maven依赖 <dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-config</artifactId> <version>...

2020-04-27 21:28:37 393

原创 自定义登录成功和登录处理逻辑

自定义登录成功和登录处理逻辑 自定义登录成功处理逻辑 要改变默认的登录成功处理逻辑,只要实现org.springframework.security.web.authentication.AuthenticationSuccessHandler的onAuthenticationSuccess方法 @Component public class MyAuthenticationSucessH...

2020-04-26 20:42:53 1062

原创 整合thymeleaf实现自定义登录页面

整合thymeleaf实现自定义登录页面 引入maven坐标 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency&...

2020-04-26 16:59:22 3349

原创 SpringSecurity自定义用户认证

SpringSecurity自定义用户认证 实现自定义认证过程必须实现spring security提供的UserDetailsService,该接口只用一个抽象方法loadUserByUsername public interface UserDetailsService { UserDetails loadUserByUsername(String username) throw...

2020-04-26 16:14:44 586

原创 SpringSecurity入门

SpringSecurity入门 1.创建spring-boot工程 2.引入相关maven坐标 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </de...

2020-04-26 15:26:48 147

空空如也

空空如也

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

TA关注的人

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