原创 POST請求https遇到unable to find valid certification path to requested target

完整異常信息爲: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun

原创 spring cloud 二刷總結摘抄記錄

Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它爲基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分佈式會話和集羣狀態管理等操作提供了一種簡單的開發方

原创 Spring屬性攔截器@InitBinder搭配@RequestBody使用

前言: Spring屬性攔截器@InitBinder搭配@RequestBody使用,導致dto內屬性攔截不到的問題。 查找了許多文檔,發現原文裏面說了,用@RequestBody註釋的的確不生效,但我們又有這個需求,怎麼辦呢,經過我研究

原创 線程學習1:ThreadLocal的使用

線程局部變量;對於多線程資源共享的問題,同步機制採用了“以時間換空間”的方式,而ThreadLocal採用了“以空間換時間”的方式。前者僅提供一份變量,讓不同的線程排隊訪問,而後者爲每一個線程都提供了一份變量,因此可以同時訪問而互不影響。

原创 線程學習2:帶返回值的線程Callable和FutureTask

package com.research; import java.util.Date; import java.util.concurrent.Callable; import java.util.concurrent.Execut

原创 線程學習3:ThreadGroup線程組

package com.research; /** * 線程組 * ①定義線程組 * ThreadGroup類中有 2個構造方法,它們用來定義線程組。這 2個構造方法的使用格 式如下: * public Thread

原创 線程學習4:join方法的使用

package com.research; /** * join方法 * 原理: * 從源碼中可以看到:join方法的原理就是調用相應線程的wait方法進行等待操作的, * 例如A線程中調用了B線程的join方法,則相當於在

原创 支付寶APP支付

支付寶支付和微信支付一樣,後端只需要關心三個接口,其他的交給前端,前端集成sdk去操作 https://docs.open.alipay.com/204   <!-- 支付寶支付官方SDK --> <dependency> <gr

原创 stripe國際支付(對接支付寶、微信)

前言:stripe國際支付現在網上資料很少,且不支持中國,所以如果要用需要去支持的國家註冊商戶,官網的java demo是用的spark框架,我這裏用的spring,驗籤需要手動驗籤,且不能用官網的方法 正文: 支付寶文檔地址:https

原创 微信APP支付

前言:最近公司接了個商城項目,被分到了做微信支付,支付寶支付和stripe國際支付,在此記錄一下。 正文:     微信支付接入方式分很多種如下:   比如h5,大部分業務幾乎都在後臺,而app支付一半在前端一半在後端,我這裏講的是ap

原创 使用切面AOP實現全局樂觀鎖

最近項目需要版本號樂觀鎖,但發現每個需要加鎖的地方都要做處理髮現很繁瑣很臃腫,所以使用aop切面+自定義註解來抽取實現樂觀鎖。 第一步使用@Aspect需要pom引入 <!--使用AspectJ方式註解需要相應的包--> <depen

原创 百萬級數據EXCEL導出--easyexcel

easyexcel 項目git地址爲: https://github.com/alibaba/easyexcel 官方使用指南見: https://github.com/alibaba/easyexcel/blob/master/quic

原创 WebMagic爬蟲(一)基礎版

WebMagic是碼雲上面一個很熱門的爬蟲框架,非常好用便捷 地址:https://gitee.com/flashsword20/webmagic  感謝作者 爬取一個頁面的時候,有些網站會通過js渲染或者通過ajax渲染,普通的無渲染就

原创 WebMagic爬蟲(二)升級版

我在爬取頁面的時候發現有很多數據是js渲染進去的,通過: String htm = page.getHtml().xpath("*/html/html()").toString(); page.putField("html",htm);