原创 SpringCloud使用Feign服務通信踩的坑

  fallback熔斷器實現了Feign客戶端的所有方法,當網絡不通或者訪問失敗時,會自動調用fallback服務降級類中的方法。 啓動項目時報錯了,具體的報錯信息如下: Caused by: java.lang.IllegalStat

原创 SpringBoot整合Mail發送郵件&發送模板郵件

  整合mail發送郵件,其實就是通過代碼來操作發送郵件的步驟,編輯收件人、郵件內容、郵件附件等等。通過郵件可以拓展出短信驗證碼、消息通知等業務。 一、pom文件引入依賴 <dependency> <groupId>org.spri

原创 SpringBoot整合Swagger3生成接口文檔

  前後端分離的項目,接口文檔的存在十分重要。與手動編寫接口文檔不同,swagger是一個自動生成接口文檔的工具,在需求不斷變更的環境下,手動編寫文檔的效率實在太低。與新版的swagger3相比swagger2配置更少,使用更加方便。 一、

原创 Shiro整合Redis:使用shiro-redis插件踩的坑

  一直想在shiro權限這塊加入緩存,使用redis是再合適不過了,恰巧已經有大佬將shiro和redis整合在一起使用了,只需在引入pom文件中引入即可。 <dependency> <groupId>org.crazyca

原创 SpringBoot整合Hibernate Validator實現參數驗證功能

  在前後端分離的開發模式中,後端對前端傳入的參數的校驗成了必不可少的一個環節。但是在多參數的情況下,在controller層加上參數驗證,會顯得特別臃腫,並且會有許多的重複代碼。這裏可以引用Hibernate Validator來解決這個

原创 springboot使用Jwt處理跨域認證問題

  在前後端開發時爲什麼需要用戶認證呢?原因是由於HTTP協定是不存儲狀態的,這意味着當我們透過賬號密碼驗證一個使用者時,當下一個request請求時他就把剛剛的資料忘記了。於是我們的程序就不知道誰是誰了。 所以爲了保證系統的安全,就需要驗

原创 SpringBoot實現圖片上傳demo&Nginx進行代理顯示

公司項目需要一個圖片上傳的功能,就圖片能上傳到服務器(公司用的windows服務器),然後nginx能進行代理訪問到就行了,先簡單介紹一下nginx,然後再來實現功能。 一、nginx簡介 Nginx (engine x) 是一個高性能的

原创 Redis面試總結&史上最全Redis面試題及答案(轉)

Redis 在互聯網技術存儲方面使用如此廣泛,幾乎所有的後端技術面試官都要在 Redis 的使用和原理方面對小夥伴們進行各種刁難。作爲一名在互聯網技術行業打擊過成百上千名【請允許我誇張一下】的資深技術面試官,看過了無數落寞的身影失望的離開,

原创 SpringBoot整合Shiro實現登錄攔截以及認證授權功能

一、Shiro是什麼? Apache Shiro是一個Java安全權限框框架。 Shiro可以非常容易的開發出足夠好的應用,其不僅可以在javaEE環境。 Shiro可以完成,認證,授權,加密,會話管理,Web集成,緩存等。 二、Shiro

原创 Docker Compose搭建Redis一主二從三哨兵高可用集羣

一、Docker Compose介紹 https://docs.docker.com/compose/ Docker官方的網站是這樣介紹Docker Compose的: Compose是用於定義和運行多容器Docker應用程序的工具。通

原创 Java併發編程(一):線程基礎知識以及synchronized關鍵字

1.線程與多線程的概念:在一個程序中,能夠獨立運行的程序片段叫作“線程”(Thread)。多線程(multithreading)是指從軟件或者硬件上實現多個線程併發執行的技術。 2.多線程的意義:多線程可以在時間片裏被cpu快速切換,資源能

原创 Java併發編程(四):併發容器(轉)

  解決併發情況下的容器線程安全問題的。給多線程環境準備一個線程安全的容器對象。  線程安全的容器對象: Vector, Hashtable。線程安全容器對象,都是使用 synchronized 方法實現的。  concurrent 包中的

原创 Java併發編程(二):volatile關鍵字

volatile是Java虛擬機提供的輕量級的同步機制。volatile關鍵字有如下兩個作用,一句話概括就是內存可見性和禁止重排序。 1)保證被volatile修飾的共享變量對所有線程總是可見的,也就是當一個線程修改了一個被volatile

原创 JVM基礎快速入門篇

Java是一門可以跨平臺的語言,但是Java本身是不可以實現跨平臺的,需要JVM實現跨平臺。javac編譯好後的class文件,在Windows、Linux、Mac等系統上,只要該系統安裝對應的Java虛擬機,class文件都可以運行。達到

原创 Docker快速上手之部署SpringBoot項目

Docker是基於Go語言實現的雲開源項目。 Docker的主要目標是“Build,Ship and Run Any App,Anywhere”,也就是通過對應用組件的封裝、分發、部署、運行等生命週期的管理,使用戶的APP(可以是一個WEB