原创 Spring框架開發之ApplicationContextAware接口

當我們開發Spring應用時有時會使用到Spring的ApplicationContext對象。這時可以將類實現ApplicationContextAware接口。這樣當這個類的對象實例化時會調用接口的setApplicationCont

原创 JDK動態代理原理

爲什麼使用動態代理 在一些場景,我們需要對我們的業務做一些統一的邏輯處理。比如說統一的日誌記錄,統一的異常處理,統一的權限控制管理。在這些業務場景使用動態代理就是一個很好的編程模式。統一的邏輯處理滿足面向對象編程中的單一職責原則。同時也滿

原创 CGLIB動態代理

先來看一個簡單的示例先定義一個被代理類 package com.proxy.cglib; public class Demo { public void sayHello(){ System.out.println("hello

原创 SpringBoot單元測試

在日常開發過程中爲了保證代碼的正確通常我們要對自己寫好的功能代碼進行反覆測試。比如說我們寫好一個HTTP協議的接口。爲了測試這個接口的正確性。我們很多時候會通過瀏覽器插件進行接口測試。這樣操作既麻煩又費時。很多時候覺得這樣麻煩只是簡單的做

原创 DataSource連接配置說明

DataSource配置項說明方便查閱spring.dao.exceptiontranslation.enabled 是否開啓PersistenceExceptionTranslationPostProcessor,默認爲true sp

原创 SpringCloud服務調用組件

SpringCloud給我們提供了幾個服務調用組件。接下來分別對其使用進行介紹 一、RestTemplate 當我們用SpringCloud寫好服務API後當我們需要消費調用服務時,RestTemplate組件就派上用場了。要使用該組件第

原创 Spring框架開發之SmartLifecycle接口

在使用Spring開發時,我們都知道,所有bean都交給Spring容器來統一管理,其中包括每一個bean的加載和初始化。 有時候我們需要在Spring加載和初始化所有bean後,接着執行一些任務或者業務邏輯。這時SmartLifecyc

原创 RabbitMQ概念介紹

RabbitMQ概念模型消息(message)被髮布者(publisher)發送給交換機(exchange),交換機常常被比喻成郵局或者郵箱。然後交換機將收到的消息根據路由規則分發給綁定的隊列(queue)。最後AMQP代理會將消息投遞給

原创 分佈式數據庫--MyCat--分庫JOIN解決方案彙總

MyCat分佈式數據庫如何解決分庫JOIN一、全局表。該模式適用於不分片表。MyCat全局表在進行更新、添加、刪除操作時會在每一個節點執行 一次以保證數據一致性MyCat全局表在設計時需要額外添加一個字段_mycat_op_time數據類

原创 SpringCloud簡單Demo工程搭建

摘要SpringCloud爲分佈式系統開發提供了開箱即用的腳手架。使得開發分佈式系統變得簡單。接下來簡單介紹下通過SpringCloud開發分佈式架構應用的Demo工程。本博客只是介紹怎麼使用,愛一個人始於顏值終於才華。基於這個思路先介紹

原创 分佈式系統之分佈式鎖

現在很多系統都採用分佈式部署,並且同一個應用爲了實現高可用,在部署時採用集羣方式。這時當前端代理服務器受到請求後 被分發到不同的服務器上面。像下面這種。所以在這種情況下單個JVM的鎖就排不上用場了。在這種場景下需要分佈式鎖。目前分佈式鎖有

原创 Java的volatile關鍵字

在Java併發編程中volatile關鍵字是一個非常重要的工具,使用得好能夠極大提高程序的性能。理解volatile是使用它的前提。否則程序運行的結果就不能達到預期。爲了說清除volatile關鍵字就不得不提兩個東西,一個是JAVA內存抽

原创 Spring事務總結

DataSourceTransactionManager.getTransaction(..)方法根據一個類型爲 TransactionDefinition 的參數返回一個 TransactionStatus 對象。返回的 Transac

原创 分佈式數據庫--概述

分佈式數據庫是指組件分佈在網絡上,組件之間通過傳遞消息進行通信和動作協調的系統。其核心理念是讓多臺服務器協同工作,完成單臺數據庫無法處理的任務。分佈式數據庫設計應該滿足如下要求。透明性:分佈式數據庫對於開發人員是透明的。分佈式數據在使用上

原创 分佈式日誌系統-ELK-搭建Demo

日誌是分析線上問題的重要手段,通常我們會把日誌輸出到控制檯或者本地文件中,排查問題時通過根據關鍵字搜索本地日誌,這在單機應用中使用起來還是非常方便有效的方式,但是現在隨着用戶規模的擴大,單機應用難以支撐大規模用戶訪問的業務,這時項目開發中