原创 第02篇 Lambda表達式

一、Lambda表達式引入 這裏以對人進行篩選的需求一步步變化來引入lambda 1. 數據準備 定義數據結構 package com.firewolf.java8.s001.lambda.leadin; import lomb

原创 第05篇 強大的Stream

一、Stream介紹 Stream 是 Java8 中處理集合的關鍵抽象概念,它可以指定你希望對 集合進行的操作,可以執行非常複雜的查找、過濾和映射數據等操作。 使用Stream API 對集合數據進行操作,就類似於使用 SQL

原创 引入Swagger

一、Swagger簡介 當下很多公司都採取前後端分離的開發模式,前端和後端的工作由不同的工程師完成。在這種開發模式下,維持一份及時更新且完整的 Rest API 文檔將會極大的提高我們的工作效率。傳統意義上的文檔都是後端開發人員手

原创 第03篇 函數式接口

一、什麼是函數式接口 只包含一個抽象方法的接口,稱爲函數式接口。 你可以通過 Lambda 表達式來創建該接口的對象。(若 Lambda表達式拋出一個受檢異常,那麼該異常需要在目標接口的抽象方法上進行聲明)。 我們可以

原创 mybatis-spring-boot-test詳解

一、簡單介紹 mybatis-spring-boot-test是Mybatis提供的用於單元測試的一個小工具,類似於spring-boot-test中對JPA,Jdbc的支持,通過引入mybatis-spring-boot-tes

原创 第04篇 方法引用

一、什麼是方法引用 方法引用通過方法的名字來指向一個方法。 方法引用可以使語言的結構更緊湊簡潔,減少冗餘代碼,能更加容易的看出我們的意圖。 方法引用使用一對冒號:: 方法引用的返回值是函數式接口 二、方法引用的使用類型 方法引

原创 SpringBoot- Mybatis多數據源

在有些項目中,我們可能不同的數據操作需要訪問不同的數據源,這裏僅僅都考慮DAO層技術都是使用mybatis的情況(因爲通常情況mybatis用的比較多)。 首先需要明確的是,我們實際上是對不同的mapper文件設置不同的數據源 一

原创 第01篇 Java8重要特性

Java8的新特性主要有下面幾個: Lambda 表達式 :Lambda允許把函數作爲一個方法的參數(函數作爲參數傳遞進方法中。 方法引用 :方法引用提供了非常有用的語法,可以直接引用已有Java類或對象(實例)的方法或構造器。

原创 自定義日誌註解(可獲取方法名、參數等)

這裏主要依賴了spring的AOP來實現的,如果沒有引用spring的,不可以使用這種方式。 一、引入依賴 <dependency> <groupId>org.springframework.boot</groupId

原创 第06篇 並行流和fork-join框架

爲了讓我們的程序運行的更加高效,CPU的使用效率更高,我們可以通過讓程序並行執行的方式讓所有的CPU都忙碌起來,從而提供程序執行的效率。 有兩種方式來實現並行:java8的fork-join框架、java8中的並行流(底層依然是f

原创 SpringBoot - 自定義Condition

在SpringBoot的自動裝配中,有很多的@Condition*註解用於我們按照不同的需求來裝配Bean,這裏我們示例一下如何自定義自己的Condition 其實我們可以參照已經提供的一些註解來實現即可 一、需求 配置文件中某個

原创 單元測試彙總

一、單元測試是什麼 單元測試是開發者編寫的一小段代碼,用於檢驗被測代碼的一個很小的、很明確的功能是否正確,通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函數的行爲1。 二、單元測試的好處 消滅低級錯誤 基本的

原创 spring-boot-test詳解

一、基本介紹 spring-boot-test是SpringBoot的一個功能特性,對衆多的單元測試技術進行了集成,我們可以通過在項目中添加下面的依賴引入這項特性: <dependency> <groupId>org.sp

原创 Junit5詳解

一. 基本介紹 junit是Java用戶寫單元測試用到最多的一種技術,通過一些註解讓我們的多個測試用例跑起來,從而檢測代碼的正確性,這裏我們主要介紹一下junit5。 用途:Junit一般用來驗證獨立功能的業務邏輯,比如工具方法

原创 微服務中跨服務傳遞參數

場景 在微服務架構中,有比較的服務,如果我們需要把一個參數在多個服務中傳遞,如:auth信息、語言信息、請求ID等等,那麼我們可以通過下面的方式進行處理 相關技術 ThreadLocal Filter RequestInterc