原创 OSGI實現服務註冊於發現

發佈和使用服務 由於 OSGi 框架能夠方便的隱藏實現類,所以對外提供接口是很自然的事情,OSGi 框架提供了服務的註冊和查詢功能。好的,那麼我們實際操作一下,就在 Hello world 工程的基礎上進行。 我們需要進行下列的步驟: 定

原创 java內存模型(JMM)

JMM(java memory model)java內存模型主要目標是定義程序中的變量,(此處所指的變量是實例字段、靜態字段等,不包含局部變量和函數參數,因爲這兩種是線程私有無法共享)在虛擬機中存儲到內存與從內存讀取出來的規則細節,Jav

原创 Spring IOC體系結構(二)

4、AbstractBeanDefinitionReader讀取Bean定義資源: BeanDefinitionReader的結構如下: 在其抽象父類AbstractBeanDefinitionReader中定義了載入過程: //重載

原创 IOC容器的依賴注入(二)

1、populateBean方法對Bean屬性的依賴注入 在上一篇IOC容器的依賴注入(一)的分析中我們已經瞭解到Bean的依賴注入分爲以下兩個過程: (1).createBeanInstance:生成Bean所包含的java對象實例。

原创 IOC容器的依賴注入(一)

1、依賴注入發生的時間 當Spring IoC容器完成了Bean定義資源的定位、載入和解析註冊以後,IoC容器中已經管理類Bean定義的相關數據,但是此時IoC容器還沒有對所管理的Bean進行依賴注入,依賴注入在以下兩種情況發生: (1)

原创 SpringMVC工作原理之:HandlerAdapter

根據 Handler 來找到支持它的 HandlerAdapter,通過 HandlerAdapter 執行這個 Handler 得到 ModelAndView 對象。HandlerAdapter 接口中的方法如下: supports(

原创 記一次線上Java程序導致服務器CPU佔用率過高的問題排除過程

1、故障現象 客服同事反饋平臺系統運行緩慢,網頁卡頓嚴重,多次重啓系統後問題依然存在,使用top命令查看服務器情況,發現CPU佔用率過高。 2、CPU佔用過高問題定位 2.1、定位問題進程 使用top命令查看資源佔用情況,發現pid爲14

原创 數據庫寫讀分離(數據庫主備方式)(一)

這裏我們採用mysql進行數據庫主備方式先進行數據庫的主備分離。 一、刪除服務器上以前老版本的數據庫 刪除步驟如下: 1、使用以下命令查看當前安裝mysql情況,查找以前是否裝有mysql $  rpm -qa|grep -i mysql

原创 spring-data-jpa自定義repository來實現原生sql

Spring Data JPA中的Repository是接口,是JPA根據方法名幫我們自動生成的。但很多時候,我們需要爲Repository提供一些自定義的實現。今天我們看看如何爲Repository添加自定義的方法。 自定義Reposi

原创 Spring IOC體系結構(三)

接着Spring IOC體系結構(一)接着進行分析Spring IOC源碼 1、BeanDefinitionParserDelegate解析Bean定義資源文件中的<Bean>元素 Bean定義資源文件中的<Import>和<Alias>

原创 spring boot RabbitMQ總結一

1. 定義 消息隊列:在消息的傳輸過程中保存消息的的容器。 這是一個較爲經典的消費-生產者模型,說起來比較抽象,打個比方:A線程需要給B線程發送消息(A、B線程不一定是在同一臺機器上的),A線程先把消息發送到消息隊列服務器上,然後B線程去

原创 數據庫寫讀分離(MHA實現mysql的集羣管理)(二)

mysql高可用有很多方案,如mmm,mysql cluster等,但都無法真正應用到生產環境。偶然間發現mha(master high availability),目前在mysql高可用方面是一個相對成熟的解決方案,它能夠在較短時間內實

原创 數據庫鎖基礎總結

在mysql中的鎖看起來是很複雜的,因爲有一大堆的東西和名詞:排它鎖,共享鎖,表鎖,頁鎖,間隙鎖,意向排它鎖,意向共享鎖,行鎖,讀鎖,寫鎖,樂觀鎖,悲觀鎖,死鎖。這些名詞有的博客又直接寫鎖的英文的簡寫--->X鎖,S鎖,IS鎖,IX鎖,

原创 類加載機制

public class SSClass{ static{ System.out.println("SSClass"); } } public class SuperClass extends S

原创 數據庫索引基礎總結

聲明:如果沒有說明具體的數據庫和存儲引擎,默認指的是mysql中的InnerDB存儲引擎 在之前,我對索引有以下的認知: 索引可以加快數據庫的檢索速度 表經常進行INSERT/UPDATE/DELETE操作就不要建立索引了,換言之:索引會