原创 SpringBoot使用Docker快速部署項目

1.簡介建議閱讀本文最好對Dokcer有一些瞭解首先我們先了解一下Docker是什麼Docker 屬於 Linux 容器的一種封裝,提供簡單易用的容器使用接口。它是目前最流行的 Linux 容器解決方案。Docker 將應用程序與該程序的依

原创 Spring Boot最核心的27個註解講解

導讀Spring Boot方式的項目開發已經逐步成爲Java應用開發領域的主流框架,它不僅可以方便地創建生產級的Spring應用程序,還能輕鬆地通過一些註解配置與目前比較火熱的微服務框架SpringCloud集成。而Spring Boot之

原创 Springboot整合Mybatis實現級聯一對多CRUD操作

在關係型數據庫中,隨處可見表之間的連接,對級聯的表進行增刪改查也是程序員必備的基礎技能。關於Spring Boot整合Mybatis在之前已經詳細寫過,不熟悉的可以回顧Spring Boot整合Mybatis並完成CRUD操作,這是本文操作

原创 你必須瞭解的java內存管理機——垃圾標記

正文1、怎麼找到存活對象?通過上篇文章我們知道,JVM創建對象時會通過某種方式從內存中劃分一塊區域進行分配。那麼當我們服務器源源不斷的接收請求的時候,就會頻繁的需要進行內存分配的操作,但是我們服務器的內存確是非常有限的呢!所以對不再使用的內

原创 2019學習進階之路:高併發+性能優化+Spring boot等大型項目實戰

Java架構師主要需要做哪些工作呢?負責設計和搭建軟件系統架構(平臺、數據庫、接口和應用架構等),解決開發中各種系統架構問題。優化現有系統的性能,解決軟件系統平臺關鍵技術問題攻關、核心功能模塊設計、核心代碼開發。在項目需求不斷細化的工程中校

原创 Java8 的這個特性,用起來真的很爽

一直在寫中間件相關的代碼,提供SDK給業務方使用,但很多業務方還一直停留在1.7版本,遲遲不升級,爲了兼容性,不敢在代碼中使用Java8的一些新特性,比如Stream之類的,雖然不能用,但還是要學一下。Stream 是什麼Stream 是J

原创 SpringBoot+JWT+Shiro+MybatisPlus實現Restful快速開發後端腳手架

一、背景前後端分離已經成爲互聯網項目開發標準,它會爲以後的大型分佈式架構打下基礎。SpringBoot使編碼配置部署都變得簡單,越來越多的互聯網公司已經選擇SpringBoot作爲微服務的入門級微框架。Mybatis-Plus是一個 Myb

原创 Spring編程式和聲明式事務實例講解

接上一篇:這可能是最漂亮的Spring事務管理詳解Spring事務管理Spring支持兩種方式的事務管理:編程式事務管理: 通過Transaction Template手動管理事務,實際應用中很少使用,使用XML配置聲明式事務: 推薦使用(

原创 這可能是最漂亮的Spring事務管理詳解

事務概念回顧什麼是事務?事務是邏輯上的一組操作,要麼都執行,要麼都不執行.事物的特性(ACID):原子性: 事務是最小的執行單位,不允許分割。事務的原子性確保動作要麼全部完成,要麼完全不起作用;一致性: 執行事務前後,數據保持一致;隔離性:

原创 十年開發,當過架構師、CTO,回顧一路成長經歷,給IT後輩一些建議

身爲一個做了十年開發的老司機程序員,這十年中我獲得了項目經理、CTO、大公司架構師的經歷。但再仔細一想,這十年中我至少浪費了五年時間走了很多彎路,這五年可以足夠讓自己成長爲一個優秀的程序員,只可惜我在前五年的時間裏和很多程序員一樣在困惑中找

原创 MyBatis源碼解析:MyBatis架構設計及源代碼分析系列(一)

如果不太熟悉MyBatis使用的請先參見MyBatis官方文檔,這對理解其架構設計和源碼分析有很大好處。一、概述MyBatis並不是一個完整的ORM框架,其官方首頁是這麼介紹自己The MyBatis data mapper framewo

原创 MySQL InnoDB鎖介紹及不同SQL語句分別加什麼樣的鎖

本文中,我們詳細介紹MySQL InnoDB存儲引擎各種不同類型的鎖,以及不同SQL語句分別會加什麼樣的鎖。閱讀提示1. 本文所參考的MySQL文檔版本是8.0,做實驗的MySQL版本是8.0.132. 本文主要參考了MySQL官方文檔 I

原创 Java併發系列 | ConcurrentHashMap源碼分析

我們知道哈希表是一種非常高效的數據結構,設計優良的哈希函數可以使其上的增刪改查操作達到O(1)級別。Java爲我們提供了一個現成的哈希結構,那就是HashMap類,在前面的文章中我曾經介紹過HashMap類,知道它的所有方法都未進行同步,因

原创 JVM沙箱容器,一種JVM的非侵入式運行期AOP解決方案

目標羣體BTRACE好強大,也曾技癢想做一個更便捷、更適合自己的問題定位工具,既可支持線上鏈路監控排查,也可支持單機版問題定位。有時候突然一個問題反饋上來,需要入參才能完成定位,但恰恰沒有任何日誌,甚至出現在別人的代碼裏,好想開發一個工具可

原创 SpringBoot中使用LoadTimeWeaving技術實現AOP功能

1. 關於LoadTimeWeaving1.1 LTW與不同的切面織入時機AOP——面向切面編程,通過爲目標類織入切面的方式,實現對目標類功能的增強。按切面被織如到目標類中的時間劃分,主要有以下幾種:1.運行期織入這是最常見的,比如在運行期