自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OAuth2 源码分析(一.核心类)

Spring Security源码解析篇介绍了Spring Security的原理,复习下几个概念Principle   GrantedAuthority    Authentication   AbstractAuthenticationToken  UsernamePasswordAuthenticationToken AuthenticationManager  Authenticat...

2018-07-19 17:41:36 15076 4

原创 redis-cluster做spring-boot的缓存

    网上有很多redis做spring-boot缓存的例子,贴两篇写的比较详细的。    https://www.jianshu.com/p/5a70b13a4fa7    https://blog.csdn.net/canot/article/details/52702029    但关于redis-cluster做spring-boot缓存的例子真是少之又少,所以就写这篇文章记录下过程。如...

2018-06-29 17:28:10 972 1

原创 PropertyResolver

2022-05-20 10:17:04 243

原创 @Transactional TransactionManager 源码分析

先贴一篇好文章,https://www.cnblogs.com/thisiswhy/p/13948055.html部分代码得修改下 rollback方法必须传入参数transactionStatus ,如果用SelfTransactionMananger单实例中的属性transactionStatus,在多线程中会出现线程不安全的情况。ArrayList 线程不安全,elementData[size++] = e是先赋值再size+1,多线程运行到赋值还没+1时,size位置上被覆盖了多次...

2021-03-08 15:38:57 4386 3

原创 Zookeeper 笔记

1. 什么是zookeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。管理系统中独特的/统一的信息 集群状态监控和通知 协调资源抢占(锁) 分派计算任务2. 搭建集群2.1 配置zoo.cfg操作很简单,从官网下载zookeeper,解压后修改conf目录下...

2019-11-07 07:54:34 389

原创 面试宝典

mysql聚族索引和非聚族索引:https://www.cnblogs.com/crazylqy/p/7615457.html覆盖索引:https://www.cnblogs.com/happyflyingpig/p/7662881.htmlB树和B+树:https://blog.csdn.net/z_ryan/article/details/79685072为何使用自增索引:...

2019-11-04 19:03:45 726

原创 ThreadPoolExecutor 源码解析

1.重要知识点ThreadPoolExecutor 作为线程池,支持用户往线程池里添加任务,由线程池来管理线程开销,避免资源的浪费。用户可以选择以下几种方式添加任务,前三个返回Future,可以分布式计算获得结果。<T> Future<T> submit(Callable<T> task)<T> Future<T> submi...

2019-10-31 15:38:30 229

原创 Springcloud EurekaClient 底层实现(一)

最近接手一个项目,需要重启服务时先注销掉当前服务,再重启程序,这样就不会因为ribbon负载均衡到重启的服务上从而丢失请求,那么我们先来研究下怎么手动注销服务。以下所有代码都是基于springboot2.0.9 RELEASE和springcloud Finchley.RELEASE注销服务向eurekaserver发送delete请求比如说现在想注销下图中的PRODUCER服务那么...

2019-07-10 19:14:24 912

原创 CyclicBarrier底层原理

案例CyclicBarrier是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。public class CyclicBarrierTest { public static Map<String,Integer> result ...

2019-05-22 14:39:38 487

原创 ThreadLocal

END

2019-04-28 15:09:05 148

原创 Synchronized 深度解析

synchronized可修饰普通方法、静态方法和代码块 。修饰普通方法,锁的是对象,一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法。public synchronized void sayHello(){}修饰静态方法,锁的是类(new多个对象都是源于同一个类...

2019-03-18 16:10:43 186

原创 索引那些事

最近面试问了很多关于索引的事,本来自认为可以对答如流,什么BTREE B+TREE啊,什么like '%abc'和like ‘abc%’的区别啊,又是联合索引a=?and b=? and c=?的判断啊,很简单呐,但没想到啊,这里面门门道道都可以玩出花来了,现在面试官问问题都是挖着陷阱让你往里跳,不讲究。你真的懂联合索引么?话不多说,实践出真理,建表建索引 (name,class,a...

2019-03-15 15:41:12 149

原创 Socket 阻塞/非阻塞 同步IO

参考资料:https://www.cnblogs.com/goodboy-heyang/p/6372058.html Socket通信实现步骤:1、创建ServerSocket和Socket(client)。2、打开连接到Socket的输入/输出流。3、按照协议对Socket进行读/写操作。4、关闭输入输出流、关闭Socket。一定有两个不同的Socket(要么ip不同,要么port不...

2018-12-11 15:03:02 683

原创 JVM虚拟机笔记

1.执行java文件zhangjg@linux:/deve/workspace/HelloJava/src$ javac HelloWorld.java zhangjg@linux:/deve/workspace/HelloJava/src$ ls HelloWorld.class HelloWorld.java HelloWorld.class并不能直接被系统识别执行,需...

2018-12-11 10:40:44 180

原创 IO 字符流-字节流

java io 体系结构 1 字节流(InputStream,OutputStream)直接和文件交互,没有缓存区。所以即便没有close(),数据也已写入文件中。操作的是字节(byte[])...

2018-12-11 10:32:02 153

原创 springboot集成Websocket(含源码)

1.Websocket介绍传统的浏览器与服务器通讯的方式是http连接,这种连接是无状态、单向的通信协议。即每次建立连接都得传递cookie、session信息来证明自己的身份,因为服务器是不会记住之前连接的信息。同时只有客户端向服务端发出请求才能获得返回信息,服务器是不能主动给客户端发送连接的,因为服务器记不住有哪些客户端跟自己连接的。这种单向请求的特点,注定了如果服务器有连续的状态变化...

2018-09-29 15:22:43 1946 2

原创 Rabbitmq和Kafka最全讲解

市面上流行的消息队列有rabbitmq,kafka,Activemq等,所有这些都是为了解决消息的分布式消费,完成项目与服务的解耦。采取异步模式完成消息队列提供者和消费者的通信,提高了系统的响应能力和信息吞吐量。Rabbitmq基本概念Producer:消息生产者 Consumer:消息消费者 Exchange:消息交换机,指定消息按什么规则传递到具体哪个队列中 Queue:消息...

2018-09-27 20:51:50 5393

原创 OAuth2 源码分析(三.密码模式源码)

上章介绍了授权码模式,现在再来介绍密码模式,简单的如同砍瓜切菜。所谓密码模式,即用户提供username,password,clientId,clientSecret,grantType=password等信息,请求/oauth/token,获得access_token,用户即可通过access_token访问资源。还是以oauth2-demo-master项目为例,只用添加client的...

2018-09-17 14:41:52 6211 5

原创 OAuth2 源码分析(二.授权码模式源码)

上一章介绍了与OAuth2相关的核心类,让我们再复习一遍,如果有遗忘的地方请移步到上一章查看。四大角色:ResouceServer   AuthorizationServer    client     user OAuth2AccessToken  OAuth2Authentiaction OAuth2Request    TokenRequest   AuthorizationReq...

2018-09-07 16:12:49 7592

原创 Spring Security源码解析(二.创建FilterChainProxy)

上一章介绍了Spring Security的相关知识点,这章将详细分析源码。首先需要认识到Spring Security的关键是filter——FilterChainProxy,经过一层层的filter才能最终访问到我们的资源信息。同时要了解,访问不同的uri,系统会采取对应的filter列表进行过滤,如下图所示。严谨点说不止是uri,可以自定义匹配头信息啊或者其他的,http请求中...

2018-08-10 13:45:53 2807 4

原创 ApplicationEvent和ApplicationListener源码解析

1.何为观察者设计模式在了解源码之前,先问下自己懂了观察者设计模式没,以及为什么要用观察者设计模式。所谓观察者设计模式,可以这么类比,某个班在教室里自习,A在看小黄书,B在玩GBA,C在睡觉。这时候班主任突然出现在教室的窗户边暗中观察自习情况。A,B,C感觉有一道灼热的目光看着自己,抬起头来发现了老师,马上A放下了手中的小黄书拿出了数学作业开始做,B放下了手中的GBA开始看英语书,...

2018-07-30 14:23:29 1102

原创 Spring Security源码解析(一.基础知识点与流程介绍)

目录一、Authentication,AuthenticationManager,AuthenticationProvider​二、UserDetails,UserDetailsService,UserCache,User三、SecurityContext,SecurityContextHolder四、WebSecurityConfigurerAdapter五、总结首先回想...

2018-07-17 20:21:09 8102 11

原创 cache CacheManager @Cacheable

    今天研究了会spring自带的缓存cache,首先得弄清楚cache和CacheManager究竟是什么。一.Cache,CacheManager结构   Cache是一个接口,可以像Map一样put,get值,一个name为people的cache,可以存储多个不同key的数据,如key=22,value="123";key=23;value="224".    CacheManager...

2018-06-26 20:18:39 9160

原创 @Configuration @Bean

        xml文件里的配置 &lt;!-- 引入配置文件 --&gt; &lt;bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; &lt;property name="locat...

2018-05-08 19:31:34 183

原创 maven自定义模板archetype

最近做springcloud项目,需要用maven项目管理springboot,eclipse自带的maven模板又贼鸡儿蠢,于是就想自己搞个模板。网上文章很多,这篇写的挺合我心意  ——  maven:从一个已有项目生成一个archetype(未完成)一.添加maven-archetype-plugin    在模板maven项目的pom.xml里加入插件maven-archetyp...

2018-05-02 09:11:57 801

原创 yml文件读取

    公司电脑抽风,连接不上market.eclipse.org,无法通过market下载sts组件,只好通过连线下载的方式安装,安装了sts插件后仍然发现yml文件读取并没有按spring的格式来,还是跟text editor一样。一查发现preference里并没有显示spring的插件,搞了n久还是没装上去,只好直接下sts release版本。(最后发现通过无线网连接,把ip改成固定ip...

2018-04-28 11:59:19 1091

原创 oracle 数据迁移 impdp expdp

    之前做数据备份的时候用的都是exp 和 imp,但最近exp导了一个几十万数据的表就花了将近10分钟时间,简直不能忍。一直听说expdp的效率高,今天就来试一试。    按照惯例,先贴几篇有用的文章,使用expdp导出数据,dblink的操作。    最先需要明确场景,本地库A和远程数据库B,现在想要把B的数据迁移到A里面来。(如果是本地库中不同用户C和D,那么就无需dblink)。需要实...

2018-04-26 16:55:53 328

原创 mysql linux 安装

    本以为mysql安装挺简单的,毕竟yum一下就好了,但是yum版本太低,最近要做中文的全文检索,要求版本大于5.7,所以先下载tar.gz。   1. 下载好的文件解压到/usr/local/mysql下!!!   2.然后chown mysql:mysql /usr/local/mysql !!!   3.接着bin/mysqld --initialize --user=mysql --...

2018-04-10 15:43:08 109

原创 mysql 中文全文检索

    网上一搜一大堆,总结下,mysql5.7以前的版本是不支持中文分词全文检索的,5.7及以后出了一个ngram的中文分词器,那么就可以来用中文检索了。    值得注意的是,直接用navicat设置fulltext是不够的,因为没有用到ngram。        所以正确的写法是alter table hd_market add fulltext index ix_addr(addr) wit...

2018-04-09 23:02:44 472

转载 redis分布式锁

转载:https://my.oschina.net/u/1995545/blog/366381Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。这系列的命令非常有用,这里讲使用SETNX来实现分布式锁。 用SETNX实现分布式锁 利用SETNX非常简单地实现分布式锁。例如:某客户端要获得一个名字foo的锁...

2018-03-27 20:27:50 149

原创 Session Cookie

    先贴两篇好帖子    https://www.cnblogs.com/fnng/archive/2012/08/14/2637279.html    https://www.cnblogs.com/woshimrf/p/5317776.html    http://blog.csdn.net/lingadobe/article/details/53193008    看完这两篇基本就基本明...

2018-03-20 14:21:12 340

原创 redis集群创建与jedis连接

1.创建redis-cluster     redis中文官方网站有说明,很详细地介绍了redis-cluster创建的流程。可能之前需要做些准备工作,如安装ruby,openssl等,这个就上网自己查吧,给几个链接:   ruby: https://www.cnblogs.com/smileyes/p/7489484.html   openssl: http://blog.csdn.net/hu...

2018-03-16 10:38:46 831

原创 Linux相关笔记

CentOs笔记1 CentOs7.0 64位安装CentOs: CentOS-7-x86_64-DVD-1511.iso教程url:http://linux.vbird.org/linux_basic/0157installcentos7.php步骤基本和上面一致。1.1 选择中文安装1.2 分配空间/ 根目录 >= 25GSWAP >= 3G/home >=

2017-02-13 11:34:17 724

空空如也

空空如也

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

TA关注的人

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