原创 Shiro學習筆記(1)-Shiro簡介

什麼是Shiro 簡單地來說,Apache Shiro是Java的一個安全框架。 Shiro能實現的功能 (1)主要特性: Authentication: 驗證用戶身份,通常指登錄。 Authorization :控制權限 S

原创 Shiro學習筆記(2)-Shiro配置

前言 本文具體解析Shiro的配置機制,主要分爲如下兩部分:編碼式配置和INI文件配置。 編碼式配置 通過編碼方式配置比較簡單,但是可重用性低,現實使用中用的不是很多,這邊給一個簡單示例 //獲取Realm對象

原创 AQS源碼分析(以ReentrantLock爲例)

前言 當我們在Java併發編程中,可能會時常使用ReentrantLock、Semaphore、CountDwonLatch等同步工具保證線程安全,但是我們可能對它們到底是如何保證線程安全並不是很清楚。本篇文章就通過詳細解析他們的

原创 Shiro學習筆記(3)-Shiro認證機制

前言 本文主要講解shiro的具體認證機制,這屬於shiro提供的一個最基本的功能。 Authentication首先有兩個重要的概念: Principals : 是用來標識Subject身份的屬性,可以是用戶名、身份證號等值

原创 Shiro學習筆記(6)-Session

前言 Shiro本身提供完整的Session管理(無論是在什麼環境),通過Session,可以自定義一些屬性讓shiro進行管理(例如可以存儲密碼進行定期的保存)。接下來,本篇文章會着重講解在Shiro中如何使用Session以及

原创 SpringBoot2.1.7 啓動過程源碼分析(1)-總覽篇

簡介 SpringBoot在如今開發過程用的很多,它爲我們的開發簡化了很多的配置,使我們可以輕而易舉完成大量複雜的開發任務。但是大多數人只是知其然而不知其所以然,因此本文章通過SpringBoot的啓動過程來深入的分一下Sprin

原创 HashMap底層那些事(基於jdk1.8)

前言 首先,我們都知道HashMap是Java中提供的一種容器,它是以key-value對的形式進行數據存儲。本篇文章主要是對HashMap的存儲原理以及Jdk1.8中對HashMap的優化來進行講解。在此之前可以看一下HashM

原创 Java泛型那些事

概念 所謂泛型,通俗地講就是通過佔位符的方式聲明抽象的類型,然後在編譯期告訴編譯器具體傳入的類型。(我們只需要在使用的時候定義好具體的類型)。 demo 定義實體類 public class Customer { pr

原创 ConcurrentHashMap源碼分析(基於jdk1.8)

前言 看標題就知道本篇文章主角是ConcurrentHashMap,在講解它之前有幾個問題有必要弄清楚。(本文都是基於jdk1.8進行分析) 什麼是ConcurrentHashMap? 如果看過我之前寫的關於HashMap的文章,

原创 Shiro學習筆記(5)-Realm

前言 Realm在Shiro中充當獲取應用認證數據或者授權數據的角色,它可以訪問像數據庫、文件系統等等的數據存儲系統。可以把它理解成Shiro的‘DAO’層。 Realm配置 Realm可以在ini配置文件中進行聲明式的配置。如下

原创 自定義SpringBoot Starter-以Swagger爲例

前言 SpringBoot支持我們自己定義starter,在編寫starter之前,我們需要知道如何自定義Auto-configuration,然後在進一步創建Starter。通過本文讓我們一步步瞭解如何創建一個完整的Starte

原创 Shiro學習筆記(4)-Shiro授權機制

前言 本文主要講解shiro的具體授權機制,這和上一篇所說的認證一樣屬於shiro提供的核心功能。 授權相關要素 (1) Permissions: 簡單來說就是針對特定操作(crud…)或者針對特定資源的訪問權限,permiss

原创 Java泛型詳解

概念 所謂泛型,通俗地講就是通過佔位符的方式聲明抽象的類型,然後在編譯期告訴編譯器具體傳入的類型。(我們只需要在使用的時候定義好具體的類型)。 demo 定義實體類 public class Customer { pr

原创 Markdown常用語法詳解

Markdown常用語法詳解 什麼是Markdown Markdown是一種輕量級標記語言,具有語法簡單可讀性強的特點。並且可以轉換爲有效的爲html文件 Markdow常用語法 常用塊級元素語法 1 段落和換行 Markdown

原创 Gson和FastJson 數據轉換的坑

1 Gson 1.1 Gson介紹: GSON是Google提供的用來在Java對象和JSON數據之間進行映射的Java類庫。可以將一個Json字符轉成一個Java對象,或者將一個Java轉化爲Json字符串。 1.2 遇到的