ElasticSearch 分词

分词将文本转换成一系列单词的过程,转换成的单词叫term or token原理: 倒排索引(b+)分词器的组成以及调用顺序1.Character Filter 单词过滤器,对原始的文本进行处理 2.Tokenizer 将原始文本按照一定的规则切分成不同的单词 3.Token Filter 针对...

2018-07-03 14:43:18

阅读数 872

评论数 1

ElasticSearch基础操作及ElasticsearchTemplate API

docker下安装 安装elasticsearch docker pull elasticsearch docker run -d --restart=always -p 9200:9200 -v ~/elasticsearch/data:/usr/share/elasticsearch/d...

2018-04-12 11:16:43

阅读数 13024

评论数 6

SpringSecurity(六):Session(集群)管理和Logout

Security的用户认证信息默认是存储在session中的,对于session过期的时间,springboot的里默认的是30分钟。 当然也可以自己设置: application.yml: server: session: timeout: 7200 #最少是一分钟,就算比一分钟少...

2017-10-30 16:26:28

阅读数 565

评论数 0

SpringSecurity(五):RememberMe以及源码分析

1.原理:参考博文:http://blog.csdn.net/fangchao2061/article/details/51179393 2.Security的实现 添加remember功能之前,先启动项目进行测试。 授权登录后,访问localhost:8080/user1可以得到用户信息,关闭浏...

2017-10-30 09:25:22

阅读数 562

评论数 0

SpringSecurity(四):自定义登陆认证实现手机号登陆

SpringSecurity默认提供了两种登陆,一种basic登陆一种表单登陆(分别在一三章有讲到),但是如果我们要实现其他方式的登陆(例如邮箱登陆,手机号登陆)又该怎么做呢? 第二章中讲到了Security的登录原来,以及最后给出的流程图,结合它们这章来实现自定义登陆认证  1.MobileAu...

2017-10-28 12:56:40

阅读数 1966

评论数 1

SpringSecurity(三):表单登陆

前面一章讲了security登陆的基本原理,这节讲讲如何不用basic登陆,采用表单登陆以及登陆过程中添加验证码 1.login.html Insert title here 标准登录页面 表单登录 用户名: 密码: ...

2017-10-28 10:17:38

阅读数 736

评论数 0

SpringSecurity(二):security的基本原理

上一章,给大家介绍了如何引入SpringSecurity。但是Security的默认安全校验不是很人性化, 所以我们需要实现自己的个性化校验逻辑。 在实现个性化校验逻辑之前,我们先来看看SpringSecurity的基本原理,以方便我们个性化。

2017-10-27 16:11:16

阅读数 531

评论数 0

SpringSecurity(一):创建一个简单的security应用

1.构建项目 jdk1.8 springboot idea maven   引入依赖 org.springframework.boot spring-boot-starter-security org.springframework.boot spring...

2017-10-27 10:15:09

阅读数 437

评论数 0

实战Java高并发程序设计之LockSupport

LockSupport简介: LockSupport是一个非常方便实用的线程阻塞工具,它可以在线程任意位置让线程阻塞.和Thread.suspend()相比,它弥补了由于resume()在前发生,导致线程无法继续执行的情况.和Object.wait()相比,它不需要先获得对象的锁,也不会抛出中断异...

2017-06-20 21:58:34

阅读数 173

评论数 0

实战Java高并发程序设计之CyclicBarrier

CyclicBarrier是另一种多线程并发控制使用工具.和CountDownLatch非常的相似,它也可以实现线程间的计数等待,但它的功能比CountDownLatch更加复杂且强大. CyclicBarrier可以理解成循环栅栏.栅栏就是一种阻碍物.这里是用来阻止线程继续执行,要求线程在栅栏处...

2017-06-19 22:19:12

阅读数 141

评论数 0

实战Java高并发程序设计之CountDownLatch

CountDownLatch:一个倒数计时器. 这个工具类通常用来控制线程等待,它可以让某一个线程等待直到计时结束,再开始执行. CountDownLatch允许一个或多个线程等待直到在其他线程中执行的一组操作 如上图所示:主线程会在零界线上等待,检查任务会分别执行,当所有的任务全部都到达零...

2017-06-17 21:42:32

阅读数 693

评论数 0

实战Java高并发程序设计之ReadWriteLock

ReadWriteLock维持着一对关联的锁.一个仅仅为读操作,一个仅仅为写操作.  只要没有写操作,读锁不是互斥的.然而写锁是互斥的 所有ReadWriteLock实现必须保证writeLock操作的内存同步效果对于相关的readLock而言也是一样的.  也就是说,一个线程成功获取读锁定将会看...

2017-06-11 20:05:51

阅读数 113

评论数 0

实战Java高并发程序设计之Semaphoer

信号量为多线程协作提供了更强大的控制方法.广义上说,信号量是对锁的扩展.无论是内部锁synchronized还是重入锁ReentranLock,一次都只允许一个线程访问同一个资源,而信号量却可以指定多个线程,同时访问某一个资源.  概念上,一个信号量维持着大量的许可. 每个acquire请求都会阻...

2017-06-11 17:14:56

阅读数 125

评论数 0

记一次Redis设置主从复制时遇到的问题

因为项目中redis用的比较多,所以最近在研究. 就在昨天在设置Redis主从复制的时候,突然这么都不行. 在设置好主从配置以后: slaveof 192.168.0.105 6379 我启动的时候设置了 daemonize yes 所以不会显示启动日志. 之后再启动redis-cli, auth...

2017-05-06 21:32:18

阅读数 578

评论数 0

从零搭建Maven本地私服和简单使用

前言: 不知道你对maven中央仓库导入依赖的方法怎么看,反正我是挺不喜欢这种方法的,弄个maven项目简直不要太浪费时间,而且最后你还会发现好多jar包都没有导入. 所以,特地来写篇maven本地仓库的搭建. 通过建立自己的私服,就可以降低中央仓库负荷,节省外网宽带,加速maven构建,自己部署...

2017-04-13 20:22:30

阅读数 535

评论数 0

实战Java高并发程序设计之ReentrantLock(二)

前面讲到了ReentranLock的基本使用,现在来看看它的底层实现. 先看ReentrantLok的UML类图(图片来自:http://www.cnblogs.com/skywang12345/p/3496147.html) ReentrantLock实现了Lock接口.内部维持着一个Syn...

2017-04-05 22:22:03

阅读数 159

评论数 0

实战Java高并发程序设计之Condition

此处只讲该接口中的具体方法,至于实现,以后再讲. 在多线程基础里面,我们将过了Object.wai()和Object.notify()方法.如果大家理解了这两个方法的话,那么就能很容易的理解Condition对象了. 它和wait()和notify()方法的作用大致相同.但是wait和notify...

2017-03-29 20:53:27

阅读数 171

评论数 0

Java并发之AQS浅析

上一章我们讲了ReentrantLock.再来回顾下它的构造函数. public ReentrantLock() { sync = new NonfairSync(); } public ReentrantLock(boolean fair) { ...

2017-03-28 23:21:41

阅读数 279

评论数 0

实战Java高并发程序设计之ReentrantLock(一)

重入锁的特性: 1.可重入. public class ReentrantLockTest extends Thread { public static ReentrantLock lock = new ReentrantLock(); public static int i = 0; pu...

2017-03-28 00:11:57

阅读数 142

评论数 0

实战Java高并发程序设计之Java内存模型和线程安全

Java内存模型 原子性: 是指一个操作是不可中断的.即使多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰. 一般CPU的指令是原子的. Q:i++是原子操作吗? A:不是. 32位系统来说long型数据的读写不是原子性的(因为long有64位),也就是说两个线程同时对long进...

2017-03-27 21:13:16

阅读数 216

评论数 0

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