原创 spring學習---spring AOP設計原理

目錄 簡介 生成代理方式類 代理行爲 流程圖 切面主流程 獲取通知鏈 執行攔截或切面 1.簡介 Spring 提供了兩種方式來生成代理對象: JDKProxy和Cglib,具體使用哪種方式生成由AopProxyFacto

原创 spring學習---spring MVC

目錄 簡介 名詞解釋 MVC(model-view-controller)概念 spring MVC 運行原理 核心架構流程 流程說明 源碼流程 1. 簡介: 是一種基於Java的實現了Web MVC設計模式的請求驅動類

原创 spring學習---事務傳播屬性和隔離級別

目錄 spring事務傳播屬性 數據庫定義隔離級別 spring定義隔離級別 1. spring事務傳播屬性 Spring 事務的本質其實就是數據庫對事務的支持,沒有數據庫的事務支持,spring 是無法提供事務功能的 spr

原创 一個完整的HTTP請求過程

目錄 交互流程 域名解析 與服務器建立連接 OSI七層模型 TCP/IP四層模型 五層體系結構 三種模型結構 數據在各層之間的傳遞過程 服務器響應HTTP請求, 瀏覽器得到html代碼 瀏覽器解析html代碼,並請求html代

原创 java學習---序列化

目錄 序列化和反序列化 用途 java實現流程 java實現demo 序列化對象 序列化工具接口 序列化實現類 測試類 java序列化優缺點 相關介紹 serialVersionUID 的作用 serialVersionUI

原创 併發編程學習---多線程學習流程

目錄 爲什麼要用多線程 如何實現多線程 使用多線程帶來哪些問題 如何解決 底層實現 1. 爲什麼要用多線程 多線程出現的目的:讓程序運行更快 需要等待網絡、I/O響應導致耗費大量的執行時間,可以採用異步線程的方式來減少阻塞 通

原创 併發編程學習---java中的線程池

目錄 簡介 ThreadPoolExecutor的execute()運行流程 線程池的創建 向線程池提交任務 合理配置線程池 線程池監控 1. 簡介 Java中的線程池是運用場景最多的併發框架,幾乎所有需要異步或併發執行任務的程序

原创 併發編程學習---Executor框架

目錄 簡介 Executor框架的兩級調度模型 Executor框架的組成 ExecutorService生命週期 Executors工具類介紹 1. 簡介 在Java 5之後,併發編程引入了一堆新的啓動、調度和管理線程的API。

原创 spring boot學習---過濾器 監聽器 攔截器

目錄 應用場景 環境準備 過濾器 監聽器 攔截器 鏈路說明 運行結果 過濾器和攔截器比較 1. 應用場景 在開發過程中,經常碰到系統啓動的數據初始化、統計在線人數、權限校驗、日誌記錄等業務需求。這些操作和具體業務沒有關聯,都是系統

原创 spring boot+gradle+mybatis多數據源配置

目錄 場景 多數據源存在問題 demo演示流程 代碼結構 引入jar包 配置application.properties 數據源初始化配置 mybatis生成對應的entity、mapper、和xml文件 完成對應的service

原创 spring boot學習---自定義starter pom

1. 簡介 starter pom就是Spring AutoConfiguration 自動配置,由spring boot提供的基於spring4.X的基於條件來配置bean功能。 2. Spring AutoConfiguratio

原创 併發編程學習---內存屏障

目錄 CPU內存模型 CPU執行亂序原因 cpu 內存屏障 作用 分類 JMM內存屏障 作用 分類 1. CPU內存模型 2. CPU執行亂序原因 由於在多CPU的機器上,每個CPU都存在cache,當一個特定數據第

原创 併發編程學習---重排序

目錄 目的 簡介 數據依賴性 重排序分類 重排序影響 1. 目的 在不改變程序執行結果的前提下,來儘可能提高並行度 2. 簡介 指編譯器和處理器爲了優化程序性能而對指令序列進行重新排序的一種手段 3. 數據依賴性 如果兩個操作訪問

原创 分佈式事務-Atomikos解決多數據源事務問題

目錄 場景 多數據源配置 引入Atomikos 測試service 1. 場景: 經常會碰到這種應用場景,比如說下訂單的操作,有需要修改訂單庫中信息,又需要修改產品庫中庫存,這一個操作就是需要一次性操作兩個數據源的情況,這種情況的

原创 併發編程學習---JMM及內存操作

目錄 作用 目的 簡介 線程、工作內存、主內存交互關係 線程、工作內存、主內存交互操作 操作規則 1. 作用 定義了一種java內存模型來屏蔽掉各種硬件和操作系統的內存訪問差異,以實現讓java程序在各種平臺上都能達到的一致的內存