為什麼要AOP?

說明Spring AOP之前,必須先提一個場景
當有個功能是要記錄log,會怎麼做?
最簡單的方式就是,直接在功能前後加上log

public class HelloSpeaker {
    public void hello(String name) { 
        logger.log(Level.INFO, "hello starts ..."); 
        System.out.println("Hello, " + name); // 主功能
        logger.log(Level.INFO, "hello ends."); 
    }
}

這樣做的缺點是:商業邏輯和日誌混在一起,不好維護
Design PatternProxy Pattern(代理模式),可以解決這個問題。
AOP就是以Proxy Pattern的概念實作的。

results matching ""

    No results matching ""