原创 Spring boot 從數據庫讀取配置信息動態切換多數據源

現在項目中配置多數據源的情況很多,但是大多數情況都是在yml中配置,或者用配置中心例如spring config或者nacos中的配置文件中寫死的。這樣做的壞處有兩點: 如果十個數據源,那麼配置文件就太繁瑣了 無法在項目不重啓的情況下添加

原创 JavaGuide知識點整理——Dubbo基礎面試題總結

Dubbo基礎 什麼是Dubbo? Dubbo是Apache下的,一款高性能,輕量級,開源的java RPC框架。 根據Dubbo官方文檔的介紹,Dubbo提供了溜達核心能力: 面向接口代理的高性能RPC調用 智能容錯和負載均衡 服務自動

原创 java定時任務的技術選型和思路

先說一下爲什麼要定時任務: 數據備份。 下單一定時間未支付則取消 釘釘定時發送日誌 博客定時發送文章 app定時推送消息 這些情況其實都是需要定時任務來完成的。但是其實java中定時任務的實現是有多種多樣的,下面我們一一細說。 單機定時

原创 多項目共享session實戰

這周工作中遇到的一個問題就是要把組內的兩個項目(完全不同的兩個項目,沒有任何關聯那種)做成統一入口。這裏用A,B來代指兩個項目。 現在要做成去掉B的登錄,然後在A的項目裏用iframe的形式把B的頁面嵌入到A項目中。首先這兩個項目的權限是單

原创 JavaGuide知識點整理——CAP 理論和BASE理論解讀

這兩個理論都是對於分佈式系統設計而言的。 CAP:Consistency(一致性),Availability(可用性),Partition Tolerance(分區容錯)。這三個的單詞的首字母組合。 BASE:Basically Avail

原创 JavaGuide知識點整理——RPC原理

何爲RPC? RPC即遠程過程調用,通過名字我們就能看出RPC關注的是遠程調用而非本地調用。 爲什麼要RPC?因爲兩個不同的服務器上的服務提供的方法不在一個內存空間,所以需要網絡編程才能傳遞方法調用所需要的參數。並且方法調用的結果也需要通過

原创 JavaGuide知識點整理——Redis面試題總結(上)

Redis基礎 簡單來說redis就是一個使用C語言開發的數據庫。不過與傳統數據庫不同的是Redis的數據是存在內存中的,也就是說它是內存數據庫,所以讀寫速度非常快,因爲Redis被廣泛用於緩存方向。 另外Redis除了可以做緩存外,還經常

原创 Spring Boot多數據源切換查詢

今天遇到一個場景,公司的消息因爲過多。所以做成了分庫的情況。一個月內的數據存在當前表中。一個月之前的數據存放在備份表中。然後把主庫和備份庫做成多數據源的形式。在查詢的時候如果主庫表中沒有就去備份庫中查詢。 其實說起來好像挺高端的。但是實現上

原创 Spring Boot使用@Valid進行表單校驗

有些時候我們在項目中,會對增加/修改進行字段的校驗,比如年齡一定的在一個合理的範圍內。比如不能超過1000歲。不能是-1歲。 名字也會在合理的範圍內,如果都是中國人的話先不說不能有字母了,起碼不會超過20個字。 還有別的亂七八糟的,比如郵箱

原创 Spring Boot整合JPA實現rest風格對數據庫操作

工作四五年,除了第一年用過jpa,剩下一直都是mybatis,後來變成mybatis plus。今天維護一個老項目才發現jpa又出了一個非常實用的功能:自動將repository轉換爲rest資源,可不提供controller層接口直接訪問

原创 JavaGuide知識點整理——Redis面試題總結(下)

Redis事務 如何使用Redis事務? Redis可以通過multi,exec,discard和watch等命令來實現事務功能。 使用multi命令後可以輸入多個命令。Redis會將這些命令放到隊列中,調用了exec命令後執行所有命令(隊

原创 認證授權——概念詳解

認證(Authentication)和授權(Authorization)的區別是什麼? 這兩個單詞長得很像,而且經常放在一起說。所以很多人可能以爲是一件事。其實並不是。這是兩個概念。簡單點說; 認證(Authentication):你是

原创 JavaGuide知識點整理——spring&springboot常用註解總結

@SpringBootApplication 這個註解其實我們常見但是又不怎麼主動使用。這個註解是spring boot項目的基石。會默認在啓動類上加上。其實我們可以把這個註解看成是多個註解的集合: 其中主要的三個註解是: @Spr

原创 JavaGuide知識點整理——Spring事務

什麼是事務? 事務是邏輯上的一組操作,要麼都執行,要麼都不執行。事務能否生效數據庫引擎是否支持事務是關鍵。比如常用的MySQL數據庫默認使用支持事務的innodb引擎。但是如果把數據庫引擎變爲myisam,那麼程序就不再支持事務了。 事務的

原创 JavaGuide知識點整理——Spring常見面試題總結

Spring基礎 什麼是Spring框架? Spring是一款開源的輕量級java開發框架。旨在提高開發人員的開發效率以及系統的可維護性。 我們一般說的Spring框架指的是Spring Framework。它是很多模塊的集合。使用這些可以