原创 CodeMirror使用筆記

最近因工作需要,在項目中使用了CodeMirror代碼編輯器,以下是使用筆記。 首先,看下最終的效果 引入基本的需要資源 <script src="<%=request.getContextPath()%>/resources

原创 Java異常處理的九個最佳實踐

1、確保在Finally程序塊中完成資源釋放或者使用Try-With語句 比如對於InputStream,當我們使用完畢,我們要確保資源被正確關閉,比如下面我們常見的錯誤用法,不要在try模塊中關閉資源,因爲一旦try語句塊中的其

原创 常用Linux命令行技巧

結果以表格形式輸出 column -t 比如; mount | column -t 默認分隔符爲空格,如果輸出文件是以別的字符進行分割的呢,比如/etc/passwd中的冒號,那麼,我們可以通過-s參數來指定 cat /et

原创 Linux下免密認證登錄失敗原因總結

事件背景 A機器已經生產rsa密鑰且已經將public key添加到B機器/root/.ssh/authorized_keys,但是從A機器上ssh root@B機器時仍然需要輸入密碼,即無密碼認證失敗。 原因總結(B機器上)

原创 Java 8 中的List排序

按字母順序排序字符串列表 List<String> cities = Arrays.asList( "Milan", "london", "San Francisco",

原创 MyBatis框架下防止SQL注入

與傳統的ORM框架不同,MyBatis使用XML描述符將對象映射到SQL語句或者存儲過程中,這種機制可以讓我們更大的靈活度通過SQL來操作數據庫對象,因此,我們必須小心這種便利下SQL注入的可能性。 安全用法 <select id

原创 MyBatis動態SQL中Map參數處理

在MyBatis中,如果我們需要傳遞兩個參數,有一種方式是通過Map作爲傳入參數,在動態SQL中,我們需要對傳入的Map參數中的值進行判斷,然後進行動態SQL的條件拼接處理。 假設我們有傳入參數map如下: map.put("na

原创 一個人有文化,到底有多重要?

關於什麼是文化,我最最欣賞的回答,是作家樑曉聲的四句概括: 根植於內心的修養, 無需提醒的自覺, 以約束爲前提的自由, 爲別人着想的善良。 -01- 一位叫做“Judy”的空姐,在微博上講了一件關於劉詩詩的趣事。因爲是空姐,在

原创 如何避免敏捷失敗?

       很多人都聽說敏捷,有些人知道敏捷是什麼,有些人也嘗試過敏捷,本章中將列舉出一些常見的錯誤敏捷實踐,如果想要避免敏捷失敗,建議還是要對照下你所在的敏捷團隊中有沒有類似的敏捷實踐,這對於你的敏捷成功是很有幫助意義的。

原创 HashMap 與 HashTable的區別

HashMap 實現了Map接口 非線程同步,非線程安全 不允許重複鍵 鍵和值均允許爲null HashMap<Interger,String> employeeHashmap=new HashMap<Integer,Stri

原创 Java之keytool命令學習

Java Keytool is a key and certificate management utility. It allows users to manage their own public/private key p

原创 微服務架構系列——API服務網關

本章我們簡單介紹微服務架構下的API服務網關,本章我們將討論以下話題: 什麼是API服務網關 爲什麼需要API服務網關 API服務網關的工作機制 處理橫切關注點 當我們在開發設計大型軟件應用時,我們一般都會採用分層的架構模式,

原创 微服務架構特徵

一個典型的微服務架構(MSA)通常包含以下組件: 客戶端 身份標識提供者: 提供訪問服務所需的身份密鑰,服務網關會負責完成對請求客戶端的基本驗籤工作 API服務網關: 客戶端訪問目標服務的入口點,經服務請求經服務網關路由到目標服

原创 什麼是微服務——微服務架構體系介紹

Why Microservices? 回答這個問題前,我們先看下之前大行其道的單體架構 - Monolithic Architecture,對於非專業人士來講,所謂的單體架構,其就像一個超大容器,容器內集中包含了該應用的所有軟件組

原创 Microservices vs SOA - 微服務與SOA

開始之前,我們先簡單看下單體架構、SOA與微服務之間的區別,如下圖所示: 簡單來講,對於單體架構,其就像一個超大容器,容器內集中包含了該應用的所有軟件組件,並且組件與組件之間緊密耦合。 而對於SOA架構來說,其本質上也是服務的集合