原创 使用ngork解決聊天機器人webhook url

在開發聊天機器人時,最痛苦的事情不是寫code,而是測試 聊天機器人的原理就是接收到訊息時,發送一個request到你指定的位置(就是webhook),然後你的程式收到用戶傳的訊息之後,你再call API回訊息 然而痛苦的點就在

原创 Intellij Idea - 升級遇到的問題 Error: java: invalid flag: -version

有時候在升級idea時會遇到 Error: java: invalid flag: -version 解決辦法 打開 File -> settings,搜索 Java compiler 此時會發現右下角的每一個modul

原创 Spring - 註解 vs XML 哪個好?

Spring中,使用註解@Autowired進行注入好,還是使用xml配置進行注入好?先講結論,使用註解@Autowired注入比較好當時Spring開發的初衷是爲了解決類與類之間的強藕合new,所以當時提出了xml配置注入bean的方法

原创 Java - Iterator和ListIterator

Iterator是所有Collection類(List、Set....)們都可以使用的迭代器,而ListIterator則是專門爲List類所設計的迭代器 Iterator只支持hasNext()、next()、remove()三種操

原创 Dubbo - 遠程debug

由於Dubbo的特性是遠程調用,因此正常來說無法在本地進行debug因爲你調用的方法在別臺機器上跑,你只能知道給他的input和他返回的結果,但沒辦法知道這個接口內部的執行,所以也沒辦法在裡面打斷點進行debug就算在本地有dubbo代碼

原创 ElasticSearch - 輸入即搜索 edge n-gram

在此之前,ES所有的查詢都是針對整個詞進行操作,也就是說倒排索引存了hello這個詞,一定得輸入hello才能找到這個詞,輸入 h 或是 he 都找不到倒排索引中的hello 然而在現實情況下,用戶已經漸漸習慣在輸入完查詢內容之前,就

原创 Java多線程 - ThreadLocal類的使用

ThreadLocal是線程的局部變量, 是每一個線程所單獨持有的,其他線程不能對其進行訪問 ThreadLocal支持泛型,也就是支持value是可以設置類型的,像是ThreadLocal<Date>就是設置value爲Date類型

原创 ElasticSearch - 批量操作 bulk

bulk允許在一個請求中進行多個操作(create、index、update、delete),也就是可以在一次請求裡做很多事情 也由於這個關係,因此bulk的請求體和其他請求的格式會有點不同 bulk的請求模板 分成actio

原创 ElasticSearch - 環境架設、基本運維

ElasticSearch環境架設 先下載想要的版本ES ElasticSearch : https://www.elastic.co/downloads/elasticsearch 確保每臺機器都升級 jdk 到 1.8

原创 Java - Iterable接口、迭代器Iterator

所有的集合類(List、Set...)都實現自Collection接口,而Collection接口又繼承於Iterable接口,因此可以說所有的集合類(List、Set...)都實現了Iterable接口 當某個類實現Iter