原创 JDK SPI機制隨筆

SPI(Service Provider Interface)是JDK自帶的一種服務發現機制,類似於Spring的IOC思想,例如Mysql Driver等都使用了JDK的SPI。 SPI設計目標: 1、面向接口編程,各模塊間不

原创 基本Jackson實現兼容國內常見日期時間格式反序列化及序列化工具

目前市面上常見的json序列化工具主要有幾種json-lib、jackson、gson、fastjson。各自的特點這裏就不說了,google一下很多介紹可以看。 每家的JSON都有各自的特色,我在這之前的項目中曾大量使用到Fas

原创 spring mvc+Mybatis整合shiro 第二章Realm

shiro的登陸與授權都是通過realm來的,這是一個自定義的realm。 public class RealmManager extends AuthorizingRealm { private Logger logger = Lo

原创 spring mvc+Mybatis整合shiro 第三章 SessionManager

sessionManager是shiro用來獲取對應session的一個管理類。他的作用是代替默認的方法來管理會話。   public class MySessionManager extends DefaultWebSessionMa

原创 spring mvc+Mybatis整合shiro 第四章 SessionDAO

shiro的session都是存在緩存中的,所有會有一個sessionDAO的類來做CRUD操作,這個類就是org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO。 它

原创 key-value數據庫優點

1、一個 key-value 數據存儲系統, 只支持一些基本操作, 如: SET(key, value)和 GET(key) 等; 2、分佈式:多臺機器(nodes)同時存儲數據和狀態,彼此交換消息來保持數據一致,可視爲一個完整的存儲系統

原创 spring mvc+Mybatis整合shiro 第一章 整體配置

前段時間研究了一下shiro,因爲看不懂英文所以學習過程頗爲曲折,後來整合shiro想寫一個sso結果這段時間又寫不下去了只好來寫寫博客了。 最初學shiro是在百度搜教程,說實話那些教程除了開濤寫的其它人寫的確實不怎麼樣,而且開濤的教程

原创 spring mvc+Mybatis整合shiro 第五章 緩存

提到shiro的緩存要講兩個接口,一個是cacheManager一個是cache cacheManager接口是獲取cache的一個接口,其中只有一個getCache方法。 cache接口是shiro定義對cache數據CRUD操

原创 對於時間輪算法的一些思考

最近一直在使用噹噹的分佈式任務調用框架,但是由於zk集羣是依賴別人的一直想換一套耦合性較低的,偶然的機會在看完許大神開源的xxl-job後萌生了自研的想法。在查詢了一些資料後發現大部分的延遲算都是基於時間輪,例如kafka的延遲隊

原创 mybatis generator生成工具

在pom中增加對mybatis generator插件的支持,我這裏將xml配置文件放到了test目錄裏面,實際打包時可以不打這個目錄 <build> <plugins> <plugin>

原创 ConcurrentHashMap1.8版本部分代碼分析

putVal方法分析 final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw new

原创 JDK SPI

SPI(Service Provider Interface)是JDK自帶的一種服務發現機制,類似於Spring的IOC思想,例如Mysql Driver等都使用了JDK的SPI。 SPI設計目標: 1、面向接口編程,各模塊間不耦合

原创 dubbo學習筆記

dubbo架構分四部分: 1、registry:註冊中心; 2、provider:提供者,啓動時會將接口註冊到註冊中心; 3、consumer:消費者,啓動訂閱provider、configurators、routers; 4、mo

原创 Netty的心跳檢測機制

一般的心跳檢測機制都是定時向服務端請求或服務端定時向客戶端發送數據以確認連接是否存活。 這種情況一般存在兩個問題: 一、請求會佔用通道的資源,如果判斷連接是否屬於空閒; 二、定時任務維護成本; Netty提供了IdleStateHan

原创 雙重鎖校驗

單例模式–雙重檢驗鎖真的線程安全嗎 單例模式是我們最熟悉不過的一種設計模式,用來保證內存中只有一個對象的實例。雖然容易,但裏面的坑也有很多,比如雙重檢驗鎖模式(double checked locking pattern)真的是線程安