原创 Spring @transactional註解和synchronized同時使用出現的併發問題(可重複讀問題)和解決辦法

今天在用jmeter進行壓力測試的時候,出現了併發問題,代碼如下: @Override @Transactional public synchronized CouponsH5Respons getACoupons() {

原创 倒計時器CountDownLatch 和 循環柵欄:CyclicBarrier

一 概念: 1.在多線程協作完成業務功能時,有時候需要等待其他多個線程完成任務之後,主線程才能繼續往下執行業務功能,在這種的業務場景下,通常可以使用Thread類的join方法,讓主線程等待被join的線程執行完之後,主線程才能繼

原创 Docker push報錯 :denied: requested access to the resource is denied

在排除沒有登錄和網絡的原因:我還是報的如下錯誤 原因鏡像的名字沒有按照規範命名: 你的dockerHub用戶名/鏡像名字:鏡像版本 #我把 my_redis:v1 改成了 langxuhao/my_redis:v2 [root

原创 IOException:request to write '8024' bytes exceeds size in header of '0' bytes for entry

java.io.IOException: request to write '8024' bytes exceeds size in header of '0' bytes for entry 'TBND_0.xls' at o

原创 ThreadPoolExecutor 四種策略

AbortPolicy: 拒絕策略,不指定爲默認值 CallerRunsPolicy: 在任務被拒絕添加後,會調用當前線程池的所在的線程去執行被拒絕的任務 DiscardPolicy: 放棄策略,線程池拒絕的任務直接拋棄,

原创 設計模式之:模板模式

1.模板模式就是通過抽象類來定義一個邏輯模板,邏輯框架、邏輯原型,然後將無法決定的部分抽象成抽象類交由子類來實現,一般這些抽象類的調用邏輯還是在抽象類中完成的。這麼看來,模板就是定義一個框架 2.定義模板採用抽象類來定義,爲什麼不

原创 算法:給定一個字符串,請你找出其中不含有重複字符的最長子串的長度(時間複雜度O(n))

時間複雜度:O(2n) = O(n)O(2n)=O(n),在最糟糕的情況下,每個字符將被 startIdx 和 endIdx 訪問兩次 示例 1: 輸入: "abcabcbb" 輸出: 3 解釋: 因爲無重複字符的最長子串是 "

原创 JSON error Could not write content: Object is null (through reference

org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: Object is null (throug

原创 Docker 啓動redis指定配置文件

一.docker中安裝好redis後如下,我安裝的是reidis5.0.5版本 二.指定redis.conf 啓動 docker run -p 6379:6379 --name iredis -v /home/docker/re

原创 spring swagger2 + swagger-bootstrap-ui +swgger分組 。簡單幾步10分鐘輕鬆搞定

界面風格: 這裏我進行了分組 API 和 H5 1 引入相關jar包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</

原创 Tomcat虛擬路徑

在tomcat/conf/Catalina/localhost 這種方式配置虛擬路徑 好處:方便管理,如果配置多個虛擬路徑的話不用全部配置在server.xml 不用重啓tomcat 增加修改即時生效。 [root@instanc

原创 微服務分佈式session共享解決方案

有幾種解決的方案: 1.tomcat的session共享 優點:不需要額外開發,只需搭建tomcat集羣即可 缺點:tomcat 是全局session複製,集羣內每個tomcat的session完全同步(也就是任何時候都完全一樣的

原创 倒計時器CountDownLatch

一 概念: 1.在多線程協作完成業務功能時,有時候需要等待其他多個線程完成任務之後,主線程才能繼續往下執行業務功能,在這種的業務場景下,通常可以使用Thread類的join方法,讓主線程等待被join的線程執行完之後,主線程才能繼

原创 Mybatis 一級緩存和引發的問題

1.Mybatis 是默認開啓一級緩存的。跟Spring結合使用的話執行的方法必須開啓事務一級緩存纔有效。 2.當查詢數據時候,先從緩存中尋找是否存在該條數據,存在就直接取出來,不存在,向數據庫發送sql查詢, 然後將查詢後的數據

原创 Oracle Start With (樹查詢)

在數據庫中, 有一種比較常見得設計模式, 層級結構設計模式 --創建測試表和數據 create table DEMO (ID varchar2(10) primary key, DSC varchar2(100), PID var