原创 Lambda之Consumer

特質 消費者模式,接收1個或多個參數,進行邏輯處理,無返回值。 測試 測試數據 @Data public static class Foo { String strVal = "Hello"; int intVal = 1;

原创 源碼分析:SpringBoot項目啓動過程

文章目錄前置準備SpringApplication.run(...)創建SpringApplication推斷上下文類型設置初始化參數通過SpringFactoriesLoader.loadFactoryNames(加載工廠類獲取

原创 Docker搭建Zookeeper和Kafka集羣

安裝Docker-compose 創建一個帶子網的專有網絡 創建一個叫zoo_kafka的網絡,子網網段172.23.0.10/20 root@localhost ]# docker network create --subnet

原创 IDEA一些開發小技巧

IDEA小技巧 快捷搜索 雙擊shift var聲明變量 創建循環for、forEach、fori 自定義常用代碼塊 自定義代碼模板 Debug過程中對數據操作 智能選中 創建環繞代碼塊 快捷鍵ctrl+alt+t

原创 SDKMAN:一款輕鬆管理多版本JDK的小工具

SDKMAN:是用於管理多個軟件開發套件的並行版本的便捷工具。該工具對Java開發人員特別有用,因爲它支持JVM的SDK,例如Java,Groovy,Scala,Kotlin和Ceylon。還支持Gradle,Maven,Spr

原创 Lambda之Supplier

特質 生成者模型,無輸入參數,返回指定類型 測試 測試參照 @Data public static class Foo { String strVal = "Hello"; int intVal = 1; Double

原创 Lambda之Function

特質 函數,接收一個或多個參數,返回指定類型結果 測試 測試數據 @Data public static class Foo { String strVal = "Hello"; int intVal = 1; Doub

原创 Spring源碼中的工具類

spring-core 整合了asm和cglib包,並定製了部分功能 StandardAnnotationMetadata 獲取類描述信息,根據註解生成AnnotatedGenericBeanDefinition時很有用 Sta

原创 基於Cglib的高效copy工具類

這裏使用的cglib是spring core包的。 import lombok.experimental.Accessors; import lombok.extern.slf4j.Slf4j; import org.spring

原创 Spring Security原理簡略分析

導讀 Spring Security是一個提供身份驗證、授權和針對常見攻擊的保護的框架。它對命令式和反應式應用程序都提供了一流的支持,是保護基於spring的應用程序的事實標準。 原理 流程圖 整體流程: clientFilter

原创 Mybatis 時序圖

元數據讀取、配置流程: XMLConfigBuilderXPathParserConfigurationMapperRegistryMapperAnnotXMLMapperBuilderMapperBuildResultMapRe

原创 JAVA資料庫

整合MyBatis進行批量操作 一個批量插入,一個批量更新,此擴展Mapper繼承原Mapper,這樣注入的時候就不用注入2個Mapper接口。 Tips: 進行批量操作,要設置參數allowMultiQueries=true,

原创 Win10設置Virtual Box主機和虛擬機互通,同時訪問外網

更改網絡適配器 點擊自己要共享網絡的網卡,我這裏是WLAN,在屬性面板選擇共享,在家庭網絡連接裏選擇自己的虛擬機網卡名,我這裏的VitrubalBox就是虛擬機的。 注意:第一次設置會提示要把IP變爲192.168.137.1,

原创 Spring MVC使用Model接收帶有【特殊字符】的請求值最佳實踐

前言 單純爲了解決問題,請直接下跳轉【最佳實踐->第三種方案】。 Spring MVC使用時候wield便於數據傳輸,都會使用Model進行接收參數,見實例: 請求: 127.0.0.1:8080/test?myName=zs

原创 構建MVN項目腳手架(模板)

1、建立一個普通的MAVEN項目,修改pom、修改包結構,放入初始化化的配置文件腳本等; 2、在項目目錄下執行生成模板命令, 編譯生成模板文件; mvn archetype:create-from-project 3、模板