原创 快速校驗非法字符工具

基於hibernate validator實現快速校驗非法字符提示工具 非空校驗註解器 IfNotNullRegex.java /** * 如果不爲空的攔截驗證 */ @Target({ ElementType.FIELD }

原创 struts2 升級到2.3.8後 使用property標籤 html字符轉義

  昨天升級了struts2 的jar。 今天就看見後臺 共有[<font color='#FF0000'>299</font>]條記錄,1/60頁。 <a href='JavaScript:tuneNewProductPage(1,5)

原创 serialVersionUID 實際的作用

serialVersionUID 實際作用 JAVA 中對序列化的支持 都是需要實現 Serializable 接口,然後需要聲明一個serialVersionUID (也可以不用申明). serialVersionUID 的作

原创 定義可裝配的流程編排器

流程編排器流程編排器 流程編排器 package com; import java.util.ArrayList; import java.util.List; /** * * @author lingao * @vers

原创 linux kill常見信號量 在 Java中的應用

linux kill常見信號量 在 Java中的應用 kill 常見的信號量 kill -l 裏面只有 9) SIGKILL 信號特別 可以無條件終止進程 Java 中的鉤子函數 Java 中可以使用 註冊鉤子函數

原创 CountDownLatch 中AQS的使用

CountDownLatch中AQS的使用 CountDownLatch 是 JAVA JUC包下提供的一個計數器.主要用於多任務處理中需要同步返回的場景. 主要的方法 方法名 描述 countDown() 利用CAS操作

原创 spring-data-mongo 關於_id 字段解析源碼分析

最近項目使用mongo作爲持久層 遇到問題: 項目中使用的主鍵(包括內嵌文檔)都是ObjectId類型.以前實體使用String類型. 在測試的時候使用spring-data-mongo 發現數據 都能通過主鍵查詢得到結果. 可

原创 mybatis 源碼分析(三) 攔截器原理

mybatis 源碼分析(三) 插件原理 mybatis 源碼分析(一) Xml解析,容器初始化 mybatis 源碼分析(二) sql執行路徑分析 mybatis 源碼分析(三) 攔截器原理 mybatis 源碼分析(四) 自帶連接池

原创 線上bug導致tomcat 線程池堆積

線上bug導致tomcat 線程池堆積 事情經過 今天早上項目搜索頁偶現504 頁面! 馬上查看線上日誌 發現大量的 ConnectionTimeOut 異常. 裏面跟蹤下代碼 RequestConfig config = Re

原创 mybatis 源碼分析(一) Xml解析,容器初始化

mybatis 源碼分析(一) Xml解析,mapper bean初始化 mybatis 源碼分析(二) sql執行路徑分析 mybatis 源碼分析(三) 插件原理 mybatis 源碼分析(四) 自帶連接池 mybatis

原创 利用mybatis 攔截器插件功能實現分片SQL

關於mybatis的攔截器 請移步 mybatis 攔截器實現 我們今天就根據這個插件 實現根據值hash分表功能 首先 準備一個 註解類 Share @Target({ElementType.TYPE}) @Retention(Re

原创 AbstractRoutingDataSource 讀寫分離 問題分析

使用AbstractRoutingDataSource 和 mybatis plugins實現讀寫分離 偶現 mysql command denied 問題分析 由於想實現對業務無侵入化的讀寫分離方案, 於是採用了 abstrac

原创 mybatis 源碼分析(四) 自帶連接池-

mybatis 源碼分析(四) 自帶連接池 mybatis 源碼分析(一) Xml解析,容器初始化 mybatis 源碼分析(二) sql執行路徑分析 mybatis 源碼分析(三) 插件原理 mybatis 源碼分析(四) 自帶連接池

原创 JAVA併發包 Future 解讀

併發包 Future 解讀 java 併發包 java.util.concurrent 有很多關於併發編程相關的類 屏蔽了操作系統的調度 友好的提供了API 便於技術大大更高效 快捷的使用多核心 提高應用的響應耗時 提升性能

原创 activeMQ 自動重連機制

在使用activeMQ的時候(沒有集成spring),發現當broker掛掉或者重啓的時候,consumer就會斷開,不會在次嘗試去接受消息, (使用spring集成activeMQ)會解決這個問題. 如果說你不想使用spring,那麼接