原创 SpringSecurity權限控制

初識SpringSecurity 學習思路 瞭解SpringSecurity是什麼。 查看官網簡介。 簡單快速閱讀官方文檔。 經過一段時間的學習,我們知道構建一個SpringBoot項目只需要三步: 導入maven依賴。

原创 SpringBoot開發單體應用

Web開發探究 SpringBoot的最大特點:自動裝配。 使用SpringBoot的步驟: 1、創建一個SpringBoot應用,選擇模塊、然後等待項目構建完成即可。 2、編寫一些需要的配置文件。 3、專注於編寫業務代碼。其餘東

原创 深入理解JVM(二)

GC詳解 GC的作用域 GC的作用域如下圖所示。 關於垃圾回收,只需要記住分代回收算法,即不同的區域使用不同的算法。 不同區域的GC頻率也不一樣: 年輕代:GC頻繁區域。 老年代:GC次數較少。 永久代:不會產生GC。

原创 JUC併發編程(三)

常用輔助類 CountDownLatch CountDownLatch,是一種減法計數器。 CountDownLatch主要有兩個方法: await()會阻塞線程,等待計時器歸零。 countDown()會令計數器減1。 例如

原创 深入理解JVM

JVM的位置 JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用於計算設備的規範,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。JVM的位置如下圖所示。 JV

原创 JUC併發編程(二)

讀寫鎖 寫鎖:也叫獨佔鎖,一次只能被一個線程佔有。 讀鎖:也叫共享鎖,該鎖可以被多個線程佔有。 ReadWriteLock,即讀寫鎖,正如它的名字一樣,它包含了讀鎖和寫鎖,一個用於只讀操作,一個用於寫入操作,我們先來看看JDK文檔

原创 如何遍歷session中的所有屬性和值

在JavaEE中,我們通常會使用如下方法爲session創建一個屬性並設置其值。 session.setAttribute(String name,String value) 然後使用如下方法獲取該屬性的值,返回值類型爲Stri

原创 FineReport報表工具如何實現報表查詢和分頁顯示

FineReport是一款報表設計工具,可以根據需要設計各種不同樣式的報表,並且可以通過網頁進行訪問。最近在做一個報表,要實現查詢和分頁的功能,經過一番研究後終於實現了,在此做一個總結。 查詢 1.首先我們需要創建一個數據集,數據

原创 Netty reactor線程步驟和啓動服務流程

reactor線程步驟 reactor線程執行主要分爲三個步驟,並且這三個步驟是不斷的循環執行的。 1.輪詢註冊到reactor線程對應的selector上的所有channel的IO事件。 select(wakenUp.getAn

原创 Java單元測試簡介

什麼是單元測試? 單元測試是對軟件或程序的基本(最小)組成單元的測試。 其對象針對的是類和方法。 其特點是可重複執行、執行速度快、相互獨立、結果不變。 單元測試的意義 使我們更瞭解需求 快速驗證 方便重構 更早發現程序問題 目標

原创 Spring Cloud常用配置

Spring Cloud的配置一般配置在application.properties或者application.yml文件中,在進行分佈式配置時,也會使用到bootstrap.properties或bootstrap.yml配置文

原创 HTTP/1.1 首部字段速覽

通用首部字段 Cache-Control 控制緩存的行爲。 Connection 逐跳首部、連接的管理。 Date 創建報文的日期時間。 Pragma 報文指令。 Trailer 報文末端的首部一覽。 Transfer-Encod

原创 js如何判斷瀏覽器版本

獲取瀏覽器版本信息 調用navigator對象的userAgent屬性可以獲取到瀏覽器版本,型號,內核,甚至安裝的插件等信息。 navigator.userAgent 主流瀏覽器的userAgent信息 一些主流瀏覽器的部分版本

原创 MySql coalesce函數

語法 coalesce(str1,str2,str3,…,default) str1,str2,str3:參數,但是最終只會返回最左邊那個非空參數的值。 default:當前面所有的表達式值都爲NULL的時候,返回此參數的值。

原创 使用shell腳本獲取當前系統日期和時間

獲取今天日期和時間 1.date +%Y%m%d_%H%M%S,輸出格式:20191101_181704 2.date +%F,輸出格式:2019-11-01 3.$(date -d today +%Y%m%d_%H%M%S),輸