原创 java 併發工具包 BlockingQueue-ArrayBlockingQueue

簡介 ArrayBlockingQueue 字義理解就是 : 數組阻塞隊列;看名字就很好理解!! ArrayBlockingQueue 是有界隊列,意思是隊列個數不能超出某個數,超出入隊阻塞,初始化就需要定義好個數,不能自動擴

原创 mybatis-sqlite

最近需要和移動端配置配合,將後臺的結果數據生成sqlite數據庫傳給移動端(因爲需要離線查看),所以配置信息的話需要同步存入sqlite。 1 創建和後臺一樣的表結構 2 做一個攔截器,只需要攔截StatementHandle

原创 zookeeper(二) 數據發佈與訂閱(配置中心)

首先需要引用 zookeeper <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zook

原创 Mybatis 源碼解析 -事務模塊

事務對數據庫的重要性,就不用多說了 我們先來看下mybatis中事務的隔離級別 public enum TransactionIsolationLevel { //無 NONE(Connection.TRANSACTION_

原创 Mybatis源碼分析-數據源

先來看個圖 沒錯,datasource(數據源)包下面的源碼,看起來好像不多的樣子,就那麼幾個類而已!! 其實從包名就可以看出 數據源分三種jndi,pooled,unpooled,來看看他們的關係,咱看圖說話 1 u

原创 Mybatis -typeHandlers類處理器

在配置模塊中的parseConfiguration方法中 //解析配置文件中的typeHandlers 節點內容,這裏就是解析自定義的類處理器 typeHandlerElement(root.evalNode("typeHand

原创 Mybatis源碼分析-執行模塊

執行模塊打算分幾篇記錄,先大概瞭解下整體流程,再詳細講些個人感覺重要的點。 接着上篇例子講 String resource = "configs/mybatis-config.xml"; Reader r

原创 zookeeper (一)

最近在學習dubbo的時候,其中提到了zookeeper!所以也學習下zookeeper!!概念性的就不記了。 zookeeper的幾個應用場景 1 數據發佈與訂閱(配置中心) 通過zookeeper的監控watcher,當存

原创 shiro-spring 結合的配置問題

shiro可以開啓權限註解功能 <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor

原创 Java 併發工具包-BlockingQueue-DelayQueue

DelayQueue 延時隊列,延時一段時間後執行的隊列,根據這個特性,可以應用在 1 緩存的生成及自動過期刪除 2 任務超時處理 … 其存儲元素必須繼承實現Delayed接口 public interface Delay

原创 java 併發工具包 BlockingQueue-LinkedBlockingQueue

簡介 LinkedBlockingQueue 字義爲鏈式阻塞隊列,既然是鏈式,那麼內部肯定以鏈接結構存儲了,相比ArrayBlockingQueue,可以是一個無界隊列,但是性能比之要差。 初始化 public LinkedBl

原创 Mybatis源碼分析-二級緩存

二級緩存和一級緩存不一樣的地方在於,二級緩存針對的是MapperStament,比一級緩存更細! 首先在使用一級緩存之前,mapper.xml文件中要配置標籤來開啓二級緩存,而且可以細化到mapper.xml中的每條sql語句,

原创 Mybatis源碼分析-配置模塊

樓主比較菜,肯定有很多說的不對的地方,主要還是寫給自己看的!! 比起spring來說,mybatis實在是簡單,所以就先來聊聊mybatis! 先來張mybatis整體的結構圖 瞧瞧 從MyBatis代碼實現的角度來看,M

原创 Mybatis 源碼解析 -插件模塊-分頁例子

分頁查詢是我們非常常用的一種查詢方式,所以我們這裏就以分頁作爲例子講解! 對於mybatis來說,當然你可以直接寫一個分頁sql語句進行查詢,將currentPage和pageSize作爲參數傳入,就可以獲得分頁數據了!但是呢,

原创 Mybatis -處理clob類型數據

當執行sql語句,返回的是map類型時, 比如 public List<Map<String, Object>> query(@Param("sql") String sql) 得到的數據是List<Map>類型數據,此時,如果