原创 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'content' at row 1

使用Mysql服務器的utf8字符編碼,在存入移動端emoji表情時會報異常: Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x84' f

原创 23種設計模式之裝飾者模式

一、什麼時候使用裝飾者模式 公司門口有一個小攤賣雞蛋餅和肉夾饃的,有時候早上吃早餐就回去光顧一下那個小攤,點了雞蛋餅之後往往還可以在這個基礎之上增加一些配料,例如煎蛋、火腿片、生菜,每個配料額價格都不一樣,不管你怎麼配配料,最終價格是雞蛋

原创 23種設計模式之工廠方法模式

以前我不是很理解,爲什麼每次面試面試官一定要抽查求職者對設計模式的一個瞭解程度.我當時在想設計模式有那麼重要嘛,平常工作中也很少用到呀.抱着這種不重視設計模式的態度,我一直都對設計模式都不夠熟悉.直到最近在項目實際應用中運用了幾個設計模式

原创 後端(springboot)解決跨域問題

業務場景:公衆號分享一個H5頁面,請求後臺活動推廣列表接口返回數據. 前端在調用這個接口時,報錯了,原因是跨域。 這時前端只要使用jsonp可以解決跨域( dataType: 'JSONP'),爲了以防萬一後端也得解決跨域.後端解決就比較

原创 聊聊Java靜態代理與動態代理的那些事兒

一、什麼是代理模式以及爲什麼需要代理模式? 代理模式就是,個人去買房子,可以直接去買房子,如果直接去買房子的話就得辦很多的手續,然後跑很多地方,這時候房產中介就出現了,我們可以把買房子的事交給中介,讓中介做我們的代理,這樣我們會省力很多,

原创 JavaBean關於爲什麼要重寫hashCode()方法和equals()方法及如何重寫

記得有一次去面試Java軟件開發工程師,面試官問了我一個關於JavaBean爲什麼要重寫hashCode()方法和equals方法,我記得當時我巴拉巴拉半天就是沒有說到重點,現在想一想歸根到底還是我對這兩個的理解不深刻,現在我特定來總結下

原创 errcode:40001 errmsg:invalid credential, access_token is invalid or not latest hint

前段時間水運頭條線上分享功能調用微信接口獲取小程序碼時,報errcode:40001,並且獲取小程序碼時有時報錯有時不報錯.可是我本地和測試環境並沒有發生這種情況.於是乎就去百度微信errcode:40001代表的含義(獲取access_

原创 mysql字符串區分大小寫的問題

一、 1.、CREATE TABLE NAME(name varchar(10)); 對這個表,缺省情況下,下面兩個查詢的結果是一樣的; SELECT * FROM TABLE NAME WHERE name = "clip"; SELE

原创 分佈式鎖簡單真實案例

前段時間做小程序水運頭條時,有個投票的功能需求,每個人一天只能對自己比較滿意的小視頻投一次票,本來我三下五除二就寫完了,覺得大事告吉.去測試環境測試也很OK,本以爲就會想往常以後就沒事了.結果線上進行投票時,後臺監控某些用戶同一天竟然投了

原创 小程序上傳文件至服務器

最近做的項目是一個水運頭條項目,其中有個小視頻上傳的功能.起初項目評審技術討論時,決定將視頻上傳至阿里雲的VOD資源服務器,需要的時候就從阿里雲的VOD去取就行了.爲什麼要上傳到阿里雲的VOD資源服務器了?主要是因爲阿里雲的VOD資源服務

原创 requestBody註解的正確使用

前端時間在做小程序水運頭條時,有個需要通過阿里雲的回調接口將上傳到阿里雲的小視頻的視頻大小,時長,封面等參數給回調到我們的後臺,從而保存至數據庫.回調接口嘛,以前寫過,跟普通接口沒多大區別.我就三下五除二的將接口給寫好了,稍微的模擬測試了

原创 Spring Boot - Spring Beans之依賴構造器注入

使用所有Spring Framework技術定義的beans以及他們的依賴注入都是免費的。簡單起見,我們通常使用@CompnentScan查找beans,結合@Autowired構造注入效果比較好。如果你的代碼結構是按之前建議的結構(將應

原创 JSON詳解

一.JSON概念A.JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation)。B.JSON 是輕量級的文本數據交換格式,類似於XML。C.JSON 獨立於語言:JSON 使用 Javasc

原创 爲什麼要學設計模式

軟件需求變幻無窮,計劃沒有變化快 要讓你的程序 儘可能的可重用 儘可能的在需求變化時不修改或做最小的修改, 儘可能的降低開發的邏輯複雜度 這就是設計模式要解決的問題 簡而言之,就是解耦合、高內聚 在這個目標指引下,我們總結了設計模式的六大

原创 Java 內存分配全面淺析

Java堆.棧和常量池 筆記今天覆習了一下這些知識,順便做了下筆記.1.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制.2. 棧:存放基本類型的變量數據和對象的引用,但對象本身不存放在棧中,而是存放在堆(new 出