原创 SpringSecurity認證流程源碼解析

前言 經過一週的學習對SpringSecurity框架有了基本的認識,並寫出了一個基於JWT認證的小模塊,通過對源代碼的debug大致瞭解了此框架的認證流程,並做如下記錄。 正文 在開始瞭解SpringSecurity認證流程之前

原创 再學Maven

前言 因爲疫情的原因,最近都是遠程辦公。此前沒有系統的學習過Maven,在項目中只是做添加依賴,刪除依賴等基本操作,在看公司項目代碼時,突然看不懂pom文件的內容了,一些關鍵字都不知道是幹什麼的;遂通過B站找了些教程做以下記錄。

原创 Apache Dubbo學習與實踐

RPC RPC(Remote Procedure Call Protocol),遠程過程調用協議,它是一種通過網絡從遠程計算機應用行請求服務,而不需要了解底層網絡技術的協議。該協議允許一臺計算機的程序調用另一臺計算機的子程序。 R

原创 Java中主要數據結構的實現原理及擴容機制

說明 Java版本:1.8.0_231 ArrayList 底層由Object數組實現,具有數組的所有特性,實現了RandomAccess接口支持隨機訪問,非線程安全類型 Object[] elementData; 構

原创 SpringSecurityGet請求可以響應,Post請求無法響應返回403 Forbidden

背景 在學習SpringSecurity的時候同一一個接口,Get請求有響應,但POST請求就沒有響應返回403Forbidden ,最後在官方文檔FAQ找到了解決方法 解決方法 意思是:post無響應與CSRF有關,解決這個

原创 Maven Assembly自定義打包插件

前言 在之前的項目中,一個項目被不同的package劃分,util負責各種工具類,exception負責異常處理還有mapper等完成各自的內容,項目需要發佈時,通過mvn package產生一個jar包或war包進行全量發佈。若

原创 《深入淺出MySQL》筆記

《深入淺出MySQL》 存儲引擎的選擇 MyISAM 特性: 不支持事務 不支持外鍵 優點: 訪問速度快,對事物完整性沒有要求或者以SELECT、INSERT爲主的可以使用 InnoDB 自動增長列 外鍵約

原创 ajax與後臺的交互demo

這個demo主要演示ajax與tomcat服務器的簡單交互操作! 思路:在輸入框中輸入用戶名,如用戶名爲空,則顯示“請輸入用戶名”;如輸入的用戶名已存在,則顯示“錯號”圖片;不存在相同的用戶名,則顯示“對號”圖片 源碼鏈接:h

原创 java解析JSON數據

解析JSON數據 所需的jar包:org.json <dependency> <groupId>org.json</groupId> <artifactId>js

原创 《HTTP權威指南》筆記

簡介 2020年春節假期被被新型冠狀病毒阻止了,呆在家裏太無聊了。就讀書充實自己吧!這份筆記後續還會不斷補充完整,畢竟一本書不是一天就能看完的。原文鏈接 一 HTTP中資源的定義方式 URI(Uniform Resource I

原创 SpringBoot整合通用Mapper插件實現單表無SQL

前言 在看之前的代碼時,總是在接口層和XML文件之前來回跳轉,看的頭都暈了,在閱讀一個開源項目時,作者使用了通用Mapper插件來完成單表的CRUD,再配合MBG,就可以生成簡潔的代碼並實現單表無SQL 使用 這裏使用Sprin

原创 常用資源下載

資源下載列表,後面持續補充 資源來自網絡,侵權立即刪 jdk-8u172-linux-x64.tar apache-jmeter-5.1 elasticsearch-6.5.3 JRebel for IntelliJ插件 G

原创 HttpClient請求https接口出現‘unable to find valid certification path to requested target’異常

背景 今天通過HttpClient請求一個外部接口時,出現SSLHandshakeException異常,通過查詢並解決了問題,現做記錄 以HTTP POST方式調用外部接口 public class HttpClientUt

原创 Spring Boot兩種方式配置Https

文章目錄使用JDK自帶的工具生成證書使用FreeSSL提供的證書 使用JDK自帶的工具生成證書 確保安裝了JDK並正確配置了環境變量; 進入你的JAVA_HOME目錄中的bin目錄; 在這個目錄下執行 // keytool -g

原创 MongoDB學習筆記

數據庫的創建 use dbname Insert insertOne:插入一條數據到collection中 db.inventory.insertOne( { item: "canvas", qty: 100, tag