1. 程式人生 > >JavaEE-SSM:001認識DI、AOP、Mybatis、SpringMVC、Redis

JavaEE-SSM:001認識DI、AOP、Mybatis、SpringMVC、Redis

1.DI(依賴注入)

以往的程式大多耦合性太大:在B的建構函式中構建了一個A的物件,這樣B就對A產生了依賴。

public class A
{

}

public class B
{
    A a;
    public B()
    {
        a = new A();
    }
}

我們可以對其改造:

改造一:通過建構函式注入

public class A
{

}

public class B
{
    A a;
    public B(A a)
    {
        this.a = a;
    }
}

改造二:通過set屬性注入

public class A
{

}

public class B
{
    A a;
    public void setA(A a)
    {
        this.a = a;
    }
}

這樣,A和B之間耦合性解除,通過容器進行DI。

 

2.AOP(面向切面程式設計)

類似於Asp.net 的管道的概念,例如對於同一個HTTP請求,我們可以通過監聽器或者過濾器實施切入,在某個位置接管HTTP請求,並採取一定的處理,可以決定是否繼續管道鏈,或者直接返回。

 

3.MyBatis--一種ORM資料庫操作框架

通過ORM進行資料庫到POJO的對映,對映關係是通過XML配置檔案或者註解建立的。實際上,在操作的時候,程式設計師是直接操作一個介面的,這個介面中含有相關的增刪改查方法,每個方法對應著XML配置中的一個Mapper.XML檔案,裡面包含著真實的SQL語句。MyBatis的優勢就是可以自定義SQL語句,實現程式碼優化,同時,SQL語句是通過XML配置的,修改起來比較方便。

 

4.Spring MVC

 

AOP、DI等技術的實現,使得基於Spring的MVC三維設計具備良好的結構正規化。

Model是領域模型,資料操作邏輯,資料持久化等一系列操作均屬於Model範疇

View是有關JSP介面顯示相關的。(替代方案為Html5+CSS3+JS)

Controller是專門擷取HTTP請求並進行分發處理的模組,這裡涉及到業務邏輯的呼叫,資料持久化的呼叫等等。

 

5.Redis快取資料庫

Redis是一種記憶體級別的資料庫,快取在記憶體中,所以操作速度要比硬碟持久化要快。適合一些經常需要讀取的資料的臨時儲存。NoSQL的流行,使得Redis技術得以發展。

響應速度快:每秒可執行110000次寫操作或者81000次讀操作。

操作原子性:Redis事務保證操作的原子性。

快取、訊息佇列得心應手,短期資料、臨時資料儲存,支援高併發。

 

6.SSM框架+Redis整合