原创 微信H5支付遇到的坑

網頁喚醒微信APP時報錯 報錯提示:商家參數格式有誤,請聯繫商家解決 解決方案: 1. 當前調起H5支付的referer爲空導致,一般是因爲直接訪問頁面調起H5支付,請按正常流程進行頁面跳轉後發起支付,或自行抓包確認refer

原创 spring-boot項目的單元測試

參考文章 Spring Boot Junit單元測試 正文 引入maven依賴 <dependency> <groupId>org.springframework.boot</groupId>

原创 JdbcTemplate使用?佔位符,查詢帶in條件的sql

概述 使用JdbcTemplate,採用佔位符寫法,防sql注入攻擊,帶有in條件的處理 拼接方法 /** * <pre> * 獲取 PreparedStatement 需要的in sql 子句 * 如: * 空

原创 JdbcTemplate防止sql注入攻擊的源碼解析

概述 使用spring中org.springframework.jdbc.core.JdbcTemplate進行sql查詢時,如果調用的是query(String sql, RowMapper<T> rowMapper)方法,是可

原创 SpringBoot基於自定義註解簡潔方便地實現Redis分佈式鎖

需求描述 控制某個service的方法,當有線程調用了該方法後,其他線程不可再調用該方法 基於自定義註解實現,使用時只需要在被調用的方法上添加註解標記即可 redis的鎖鍵(lockKey)通過自定義註解的屬性傳遞進去 客戶端如

原创 SpringBoot中java8的java.time.LocalDateTime類JsonFormat說明

問題概述 在SpringBoot中,需要對java8的java.time.LocalDateTime類進行個性化的JsonFormat。 處理前,默認處理的日期-時間效果 "create_time": {

原创 Spring Boot 2.0+使用Redis做緩存,@Cacheable註解的unless參數詳解

需求概述 在Spring boot 中,用Redis作爲緩存,在指定方法上使用@Cacheable註解,並且在緩存時,排除特定返回值 結論 @Cacheable中,unless參數的作用是:函數返回值符合EL表達式條件的,不緩存。 換

原创 Spring Boot 統一設置Json數據返回風格(Java駝峯命名轉下劃線)

編寫重寫了WebMvcConfigurerAdapter的配置類 @Configuration @EnableWebMvc public class WebMvcConfig extends WebMvcConfigurerAdapt

原创 Java Set接口contains(Object o)方法與對象hashCode()方法的關係梳理

概述 接下來我們要討論如下問題: 1、Set接口的contains方法,判斷是否包含的依據是什麼? 2、對象hashCode和equals方法之間的關係 1、Set接口的contains方法,判斷是否包含的依據是什麼? 我查看了一下接

原创 微信公衆號開發 獲取openid時報錯40029 invalid code 問題的解決

概述 通過微信官方提供的接口https://api.weixin.qq.com/sns/oauth2/access_token接口,獲取openid,結果獲取不到。 報錯代碼 WechatUserInfo(accessToken=null

原创 Druid監控頁面配置reset-enable的說明

最近使用到Druid數據庫連接池,就研究了一番。 發現reset-enable 設置後: 監控頁面的“重置按鈕”並沒有消失。 點擊後也有反饋: 後來,做了以下嘗試: 設置爲false 修改yml文件中spring.da

原创 Spring Boot 選擇外部Tomcat運行,打war包的修改流程

有時候,使用Spring Boot發佈程序時,我們不想使用內嵌的tomcat運行,還想用傳統的war包到tomcat發佈的方式,可以按照如下步驟進行: step1 修改pom的packaging爲war <packaging>war</p

原创 修改Maven的模塊名

如果有一個現有的多模塊Maven項目,想要修改其中的一個模塊名,可這樣進行: step 1 修改子模塊的project>artifactId爲新名稱 step 2 修改父pom的project>modules>module名稱 step3

原创 ArrayList中remove方法的注意事項

少羅嗦,先看代碼 public class ListRemove { public static void main(String[] args) { System.out.println("測試remove包裝類

原创 使用@SpringBootTest註解進行單元測試

概述 @SpringBootTest註解是SpringBoot自1.4.0版本開始引入的一個用於測試的註解。基本用法如下: 1. 添加Maven依賴 <properties> <project.build.sourceEn