原创 【java_基礎深入】Lambda 與匿名內部類的區別

前言 匿名內部類屬於java編寫代碼時候的一種簡約寫法。Lambda屬於匿名內部類的應用層面上的語法糖,實際上,Lambda已經改變了底層邏輯。 具體表現 Lambda表達式中可以直接super.方法名 ,調用方法所在類的父類方法

原创 【Spring】SpringMVC 中 @ControllerAdvice的兩種應用

SpringMVC 中 @ControllerAdvice的兩種應用 1. 異常處理 @ExceptionHandler 1.1 全局異常處理 @ControllerAdvice public class GlobalExcept

原创 【java_設計模式】jdk動態代理原碼解析,debug 獲取 $proxy0

普通測試場景 業務場景 保存訂單信息 分層模型 IOrderService -> OrderServiceImpl 業務代碼 public class OrderServiceImpl implements IOrderSer

原创 【java_多線程】讓線程阻塞,獲取其他線程的返回值 ,使用AQS組件實現

1. 傳統方式 Thread.join() /** * 使用傳統方式啓動線程,執行任務,實現阻塞 * * @see Thread#join() * */ public s

原创 【java_多線程】模擬銀行轉賬,爲保證原子性而引發死鎖,檢測死鎖並解決

前言 本例子不是實際的生產模型,只是爲了更好研究死鎖而舉的例子 需求 james 轉賬給 jay 20 元,需要保證轉賬過程原子性操作 能加鎖的前提 每個對象都有一個monitor,用於維護自身的鎖狀態,換句話說,所有對象都可以作

原创 【工具】idea設置代碼模板,如psvm

https://blog.csdn.net/hehe1006114318/article/details/80456321

原创 【Elasticsearch】模仿淘寶,將搜索框的業務邏輯抽象成DSL語句

目標 僅提供一個搜索API,就能兼容前端的各種查詢需求 環境 ElasticSearch 5.6.8 kibana 5.6.8 需求 界面根據用戶點擊,拼接用戶的查詢需求 input: { 1. 匹配查詢:

原创 【工具】idea創建Maven項目時統一jdk版本

處理的問題 Target bytecode version 每次創建都爲1.8 修改Maven setting 配置 定位配置路徑 增加 profiles 屬性 <?xml version="1.0" encoding="UT

原创 【Elasticsearch】ElasticsearchTemplate 拼接DSL時,debug查看最終語句

前置基礎知識 慕課教程 該教程會有講到如何打印拼接而成的普通的DSL語句 ElasticsearchTemplate.queryForpage(…) 類似於JdbcTemplate,sql語句的拼接是在方法內部的 但是Elasti

原创 【Spring】Filter、Interceptor、Aspect的設計及區別

Filter、Interceptor、Aspect的設計及區別 1) Filter 定義 基於Servlet架構,Spring無法控制,也無法拿到Spring控制的參數 public class TimeFilter imple

原创 【工具】idea 版本控制賬號從github切換至碼雲

報錯:Authentication failed for / Push to … was rejected 排查git中的賬號信息 git config --list ## 找到下列信息,去校驗碼雲的賬號信息 user.nam

原创 【Spring】SpringMVC DispatcherServlet 和 Controller的交互

1. MVC架構 1.1 FrontController: DispatcherServlet ​ FrontController就是Spring提供的DispatcherServlet , 而不是Spring提供的@Contr

原创 【MySQL】不同時區如何解析timestamp, 較datetime、date、time的區別

時間戳的定義 時間戳是指格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。通俗的講, 時間戳是一份能夠表示一份數據在一個特定時間點已經存在的完整的可驗證的數據。 系統時間 2019-11-29 10:0

原创 【工具】使用 import static 在測試用例中簡化重複代碼(idea)

需求 測試用例中存在大量靜態方法需要加類前綴,如何省略這些類名前綴 idea實現 先寫完整的類.方法名 MockMvcRequestBuilders.get("/user") 刪掉類名 get("/user") 鼠標單擊方法名

原创 【java_基礎深入】com.mysql.jdbc.Driver 藉助SPI打破雙親委派

一. SPI 中角色 先上結論 DriverManager.getConnection() 內部運用了SPI機制,掃描mysql的jar包的META-INF/services/獲取全路徑名並使用Class.forName(c