原创 Spring Boot配置加載順序

優先級按照下面的順序由高到低,數字越小優先級越高: 在命令行中傳入的參數。 SPRING_APPLICATION_JSON中的屬性。SPRING_APPLICATION_JSON是以JSON格式配置在系統環境變量中的內容。 ja

原创 SpringBoot 事務作用於異步方法或線程池踩過的坑

首先,我們的項目配置了全局事務,攔截的是ServiceImpl層中以add、save、insert、update等爲方法名前綴的方法(主要攔截增刪改操作)。場景是這樣的,我們有好幾個操作是先執行insert方法(同步方法),再執行

原创 解決mybatis不加@Param報錯 org.apache.ibatis.binding.BindingException

在使用mybatis開發時,如果Dao層方法有多個參數,但參數沒加@Param註解時,可能會報以下錯誤: org.apache.ibatis.binding.BindingException: Parameter ‘no’ not

原创 AspectJ 解決Spring @Transactional 坑點 步驟記錄

上一篇文章提到Spring @Transactional 坑點中的前兩個坑點都是用比較常規的方法解決的,spring官方提到過aspectj這種解決方案,隨後我花時間研究了一下確實解決了,大概步驟是這樣的: 1、pom.xml中加

原创 從spring源碼角度分析@Configuration和@Component區別

很多人都用過@Configuration和@Component,但並不一定了解他們的區別,或者所瞭解到的區別僅限於理論層面,並不知道真實原因,最近本人在學習spring 5.2.x源碼,特記錄並分享一下。 首先,我們可以看到@Co

原创 @Configuration標註的類中使用@Autowired注入失敗

關於在一個類上加了@Configuration,然後使用@Autowired注入一個屬性時,有可能會出現失敗的情況,目前本人在開發中並沒有遇到過,只是聽人提起過,然後也查過資料,並沒有很好的解釋。然後自己模擬了一下,如圖: 所以

原创 IDEA + Tomcat 搭建 Spring MVC(零xml配置)

本文講述的是使用idea搭建一個springmvc web項目,無需web.xml及各種xml配置,將分別演示controller返回一個頁面和json數據,然後基於tomcat部署,主要步驟如下: 1.創建maven 項目,點擊

原创 SpringBoot容器部署實現日誌基於ip生成目錄

現在很多應用都是基於容器部署,且可能有多個實例,Spring Boot項目+logback生成日誌時,爲了讓每個實例生成的日誌在不同目錄下,可以在logback-spring.xml中加上這樣一個配置: <springProper

原创 Redis 高可用集羣搭建

一、Redis 集羣方案比較 1. 哨兵模式 在redis3.0以前的版本要實現集羣一般是藉助哨兵sentinel工具來監控master節點的狀態,如果master節點異常,則會做主從切換,將某一臺slave作爲master,哨

原创 從源碼角度分析spring是如何解決循環依賴的

本文基於spring 5.2.x 調試,參考文檔: https://docs.spring.io/spring/docs/5.2.4.RELEASE/spring-framework-reference/core.html#bea

原创 Spring 事物 @Transactional 常見坑點

聊起Spring aop很多人肯定都覺得自己使用的很熟練,比如日誌,事物等等,當我問起事物怎麼實現的時候,他們都會說加個註解@Transactional就可以了,而我再問你有沒想過這中間有坑的時候,都說不知道,甚至工作五六年的人都

原创 Centos7 Redis5 BloomFilter 安裝及使用

Centos7 上 Redis 5.x 安裝及使用布隆過濾器(BloomFilter ) 1. 進入redis安裝目錄: cd /usr/local/redis-5.0.8 2. 下載插件: git clone https:/

原创 Java 實現左側菜單欄的數據層級結構

這是一個超級簡單的實現,未考慮代碼執行效率等因素,僅供參考。。。 數據庫設計: menu表,頂級菜單parentId默認爲-1,同一個頂級菜單下所有菜單的rootId爲頂級菜單的id。(若多個系統共用一個表,可增加一列:系統編碼,

原创 Mybatis 四大組件及自定義插件原理解析

一、四大組件: 1.Executor:Mybatis的SQL執行器,Mybatis中對數據庫所有增刪改查操作都由其完成,他的實現類如下: BaseExecutor中定義執行流程及通用的處理邏輯,具體方法由子類實現,是典型的模板方

原创 Java 負數二進制表示、位運算、移位運算

最近在看 Doug Lea 大神寫的併發編程的時候,經常會看到一些正負數的位運算和移位運算,以及一些符號等出現在代碼中,不經勾起了對這些知識的回憶… 負數的二進制 計算機中的有符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法