原创 Spring Boot Starter自動裝配原理

先看看SpringBoot自動裝配的原理,看了源碼原理後就明白爲什麼可以自定義Starter了 @SpringBootApplication是必須的,在Application啓動類上的一個註解,大家都知道,就從@SpringBootA

原创 mysql 給返回列表排序添加序號列

SELECT (@i:=@i+1) rankNum,userLeaderboard.userId,userLeaderboard.userName,userLeaderboard.totalAmount FROM ( SELEC

原创 redis監聽key過期事件,詳細步驟

1、配置redis.conf文件 配置文件默認是#註釋了的,改爲notify-keyspace-events Ex    重啓redis,記住指定redis.conf配置文件啓動 如果是阿里雲的redis,進入redis管理頁面==>>左

原创 idea添加類註釋自動帶入

用idea不久,才發現idea的一個註釋功能,簡單記錄下 打開:file->setting->Editor->Filr and Code Templates->Includes->File Header 簡單配置以下內容: /**

原创 java獲取微信小程序二維碼亂碼

最開始亂碼,用String接受的微信返回值,發現不能用字符串接受,用輸入流轉字節,再轉base64傳給前端 public String xyhkQrCode(HttpServletRequest request, HttpServlet

原创 類以及方法使用@Transactional註解事務後獲取類實例

今天在做項目時,由於類型很多,就改成了類似策略模式的,不使用if else,方便後期擴展 把所有的實現類繼承同一接口,再一個不相干的類進行構造所有實現類 @Service public class SendTemplateService

原创 MyEclipse Invalid derived query! No property xxxxxxxxx found for type xxxxxxxx

MyEclipse代碼報錯Invalid derived query! No property getSchoolInfo found for type CourseSchool!,代碼語法等都是對的。 發現是MyEclipse校驗工具的

原创 AOP Aspect無限遞歸驗證controller請求參數

場景是對controller提交的參數進行驗證,滿足單個基本/包裝類型屬性參數和實體類內部參數,沒有去找其他插件框架,直接自己寫了一個 廢話不多說,代碼:   ValidationAspect package com.shinedata

原创 idea設置方法註釋自動入參

網上的很多都是說param的Expression配置爲 groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').sp

原创 10進制與62進制互相轉換

package com.shinedata.util; import com.yeepay.shade.org.apache.commons.lang3.StringUtils; /** * @ClassName SystemCo

原创 mysql卡死 某張表卡死 其他表正常

今天在進行表操作的時候,改了了字段alter table name drop column等,然後這張表都卡死了。涉及到此表的所有操作頁面一直pending。數據庫也打不開此表 查看哪些運行的命令造成,如sql語句等 select id

原创 Twitter的雪花算法SnowFlake

SnowFlake算法是Twitter設計可以在分佈式系統生成唯一ID的算法,可以滿足Twitter每秒上萬ID分配,這些消息ID是唯一的且有大致的遞增順序。使用Java語言實現。適合一些生成唯一ID的業務場景 https://githu

原创 Guava學習筆記之Preconditions參數檢驗

在日常開發中,肯定是需要對參數進行校驗,以保證業務邏輯能順利執行下去,比如參數值必須大於0,不能爲空等。平時多數研發的開發習慣是if else,但是參數如果較多,代碼量多不太好看。 Guava 提供了一系列的靜態方法用於校驗函數和類的構造

原创 反射格式化bean字符串空格

/** * 去除實體類所有String類型屬性的空格 * @author yupanpan * @date 2019/9/25 10:04 * @param object * @para

原创 TransactionSynchronizationManager綁定一個事務並且在事務之後提交操作

最開始需求,在修改之後提交一個異步請求,最開始的處理方式,僞代碼 @Transactional public void createActivity(){ createActivity();//新增操作 updateOrder