原创 Java中的深淺拷貝問題你清楚嗎?

一、前言 拷貝這個詞想必大家都很熟悉,在工作中經常需要拷貝一份文件作爲副本。拷貝的好處也很明顯,相較於新建來說,可以節省很大的工作量。在Java中,同樣存在拷貝這個概念,拷貝的意義也是可以節省創建對象的開銷。 Object類中有一個方法cl

原创 Java反射到底慢在哪?

有朋友在我前兩天寫的一篇文章 深入淺出反射底下留言,問反射具體是怎麼影響性能的?這引起了我的反思。是啊,在闡述某個觀點時確實有必要說明原因,並且證明這個觀點是對的,雖然反射影響性能人盡皆知,我曾經也真的研究過反射是否存在性能問題,

原创 爲什麼強烈建議你不要做聯表查詢?

前言 一直想要聊一聊關於開發中更建議使用單表查詢+代碼層組裝 or 聯表查詢 的問題,在開發中每個同學的開發中有各自的習慣,筆者在公司也和一些同事關於這方面有一些探討。 關於本文,更像是一些個人的看法,想到什麼說什麼,一定有不同的意見,歡

原创 我想說:mysql 的 join 真的很弱

一、 問題提出: 《阿里巴巴JAVA開發手冊》裏面寫超過三張表禁止join,這是爲什麼?   二、問題分析: 對這個結論,你是否有懷疑呢?也不知道是哪位先哲說的不要人云亦云,今天我設計sql,來驗證這個結論。(實驗沒有從代碼角度分析,目前達

原创 爲什麼阿里巴巴禁止使用Apache Beanutils進行屬性的copy?

在日常開發中,我們經常需要給對象進行賦值,通常會調用其set/get方法,有些時候,如果我們要轉換的兩個對象之間屬性大致相同,會考慮使用屬性拷貝工具進行。 如我們經常在代碼中會對一個數據結構封裝成DO、SDO、DTO、VO等,而這些Bean

原创 再見,MySQL!性能被 MariaDB 吊打

MySQL的發展史 MySQL的歷史可以追溯到1979年,它的創始人叫作Michael Widenius,他在開發一個報表工具的時候,設計了一套API,後來他的客戶要求他的API支持sql語句,他直接藉助於mSQL(當時比較牛)的代碼,將

原创 Spring Security使用詳解6(自定義登錄頁、接口、結果)

在之前的所有樣例中,登錄表單一直都是使用 Spring Security 提供的默認登錄頁,登錄成功後也是默認的頁面跳轉。有時我們想要使用自定義的登錄頁,或者在前後端分離的開發方式中,前後端的數據交互通過 JSON 進行,這時登錄成功後就不

原创 Spring Security實現OAuth2授權認證教程(實現token認證)

一、OAuth 2 介紹 1、什麼是 OAuth 2? OAuth 是一個開放標準,該標準允許用戶讓第三方應用訪問該用戶在某一網站上存儲的私密資源(如頭像、照片、視頻等),而在這個過程中無須將用戶名和密碼提供給第三方應用。實現這一功能是

原创 Spring Security使用詳解10(通過註解配置方法安全)

在之前的文章樣例中,認證和授權都是基於 URL 的。開發者也可以通過註解來靈活地配置方法安全,下面通過樣例進行演示。    十、通過註解配置方法安全 1、樣例代碼 (1)首先我們要通過 @EnableGlobalMethodSecurit

原创 Spring Security使用詳解1(基本用法 )

一般項目都會有嚴格的認證和授權操作,而在 Java 開發領域常見的安全框架有 Shiro 和 Spring Security。本文首先介紹下後者。   一、基本用法 1、什麼是 Spring Security ? Spring Secu

原创 Spring Security使用詳解2(基於內存的用戶、URL權限配置 )

二、基於內存的用戶、URL權限配置 1、用戶角色配置 (1)我們可以通過自定義類繼承 WebSecurityConfigurerAdapter,從而實現對 Spring Security 更多的自定義配置。比如下面樣例我們就配置了兩個用戶

原创 Spring Security使用詳解4(基於數據庫的URL權限規則配置)

雖然前面我們實現了通過數據庫來配置用戶與角色,但認證規則仍然是使用 HttpSecurity 進行配置,還是不夠靈活,無法實現資源和角色之間的動態調整。 要實現動態配置  URL 權限,就需要開發者自定義權限配置,具體步驟如下。   四、

原创 Spring Security使用詳解9(密碼加密配置)

在之前的文章中密碼都是使用明文的方式進行存儲,但這樣會有很大的安全隱患。所以正常做系統時,密碼都要加密處理。而在 Spring Boot 中配置密碼加密非常容易,下面通過樣例進行演示。   九、密碼加密配置 1、樣例代碼 (1)要配置密碼

原创 Spring Security使用詳解5(角色繼承)

之前的文章中,各個角色之間不具備任何關係,但一般來說角色之前是有關係的,例如 ROLE_admin 一般既有 admin 的權限,又具有 user 的權限。下面介紹如何配置這種角色之間相互繼承的關係。   五、角色繼承 1、配置角色關係

原创 Spring Security使用詳解11(獲取當前用戶的用戶名、id)

有時我們需要獲取當前登錄的用戶信息(比如用戶名),通常有如下幾種方式來實現。   方法1:通過 Authentication.getPrincipal() 獲取用戶信息 (1)通過 Authentication.getPrincipal(