原创 spring security oauth2的學習過程(一)

    幾個月之前我我發了一段時間研究過這個東西,最新想重新溫習一下,然後把這個過程記錄下來。首先我們先來理解一下auth2是什麼,這邊我們引用了阮一峯的一篇文章(寫的也是很不錯),這裏我直接附上其鏈接http://www.ruanyif

原创 spring security oauth2的學習過程(二)

     前面我們已經把基本的授權服務器弄好了,並能根據四種方式獲取到token了。今天就再講講具體的一些東西。 今天要做的事情如下 1,管理用戶數據 2,修改原生返回token的內容(令牌增強器) 3,tokenStore(令牌持久化接

原创 sharding-jdbc的讀寫分離,數據庫主從同步實踐

  前段時間看到sharding-jdbc這個東西,我就用它來實踐一下讀寫分離,下面是我要下面的三個步驟來寫這篇文章 1,弄一個基礎框架spring boot + mybatis generator  2,整合sharding-jdbc,

原创 actuator 中health這個endpoint的源碼解剖

       用過spring boot的都應該知道里面有一個actuator的starter,這個actuator其實非常有用,它提供了很多監控的endpoint,比如今天要講的health,info。。。。最近在弄的spring bo

原创 eureka 心跳機制 源碼解析

今天看了一篇文件,介紹了一個eureka心跳中的一個續租間隔時間的問題,看了文章中的一些內容想了解一下eureka心跳機制的原理以及源碼   首先我從DiscoveryClient這個類開始,講這個類之前,我們先來了解一下幾個概念 Re

原创 java 線程池知識點梳理

   今天本來在看eureka的心跳機制的,過程中碰到一些線程池的知識點,之前可能沒有很全面的對線程池這一塊去了解過,對一些相關類之間的關係不是很瞭解。趁着這個機會,今天打算更深入的去了解這一塊東西    首先我用startUML工具畫了

原创 spring boot 自動配置功能解剖

    說起spring boot和spring的區別,大家第一反應就是spring boot 少了很多配置,但不是說少了很多配置很多功能就沒有了,或者比spring就少了很多功能,而是spring boot 自己約定了很多默認配置,讓大

原创 SpringBoot使用ApplicationEvent&Listener完成業務解耦

ApplicationEvent以及Listener是Spring爲我們提供的一個事件監聽、訂閱的實現,內部實現原理是觀察者設計模式,設計初衷也是爲了系統業務邏輯之間的解耦,提高可擴展性以及可維護性。事件發佈者並不需要考慮誰去監聽,監聽具

原创 EnableAutoConfiguration註解的工作原理

demo自己定義一個外部項目,core-bean,依賴如下,<artifactId>core-bean</artifactId> <packaging>jar</packaging> <dependencies> <depende

原创 Spring Cloud Zuul 整合 swagger

          最近我們有一個需求,就是把各個系統的swagger文檔集中在一起。有了這麼一個需求之後,我去百度了,結合swagger的源碼實現了一下     首先我們可以先看看單個系統的swagger頁面, 第一部分是一個下拉框,

原创 zipkin小實踐

Zipkin是什麼Zipkin分佈式跟蹤系統;它可以幫助收集時間數據,解決在microservice架構下的延遲問題;它管理這些數據的收集和查找;Zipkin的設計是基於谷歌的Google Dapper論文。每個應用程序向Zipkin報告

原创 spring cloud eureka 消費者使用服務名訪問,不能訪問的問題

     這裏說一下我自己犯的一個錯誤。我有三個項目eureka-server,provide-service,consumer-service,以下我統稱爲ABC三個項目。現在的步驟是這樣的,先訪問C項目的一個接口,接口裏面用restT

原创 spring cloud學習——spring Cloud bus(四)

中文翻譯過來是消息總線,我們在以前那個spring cloud config中會用到。spring cloud config中,當遠程git/svn中配置文件改變之後,會通過消息總線去獲取最新的配置文件信息,而不需要重啓。bus的大致架構

原创 mysql死鎖,可視化工具無法操作

最近不知道什麼原因數據庫mysql的可視化工具一直卡着不能操作,換成另一個電腦去連着也是這麼一個情況,就是所有的客戶端連着上去去操作同一個庫一直卡!!出現的提示框的內容:“lock wait timeout exceeded; try r

原创 map 和javabean的轉換

一、目的: Map轉爲爲我們想要的javaBean,使用beanUtils實現,這個工具還有其它的一些功能,比如拷貝屬性等等 二、樣例代碼: package org.egg.utils; import org.egg.enu