思考:為什麼要用Spring
阿新 • • 發佈:2018-12-17
spring帶來了什麼?
說到Spring肯定離不開它的兩大特性AOP和IOC
IOC:把我們的類上交,由Spring來進行統一的管理和配置,在需要使用的地方注入。好處是減少了各個類之間的相互依賴,依賴控制交給Spring管理。
AOP:封裝了jdk和cglib的動態代理,結合IOC提供了更方便的增強類的方法。
沒有Spring會怎麼樣?
想知道為什麼使用,最好的辦法就是想想如果沒有會怎樣,沒有手機、沒有電腦、沒有作業系統……。沒有Spring框架。
如果沒有Spring,我們不得不在使用每個類之前,例項化一個物件。當然我們可以用工廠方法來做這件事,就可以集中管理並且讓呼叫者和被呼叫者之間的耦合更鬆散。於是需要大量的工廠類,並且在增加或改變介面實現的時候,還需要對工廠進行調整。而Spring就像一個大工廠一樣,使用了大量的反射機制來生成需要例項的物件。
除此之外Spring還帶來了強大的代理,我們使用的每個注入的物件都是經過代理的增強物件,同時可以使用aop包來定義一些與業務邏輯不相關的切面。增強功能模組的內聚,拆分功能模組和非業務模組。而AOP又是建立在IOP基礎之上,因此如果沒有Spring,功能模組和非功能模組混在一起,導致邏輯混亂不清晰。
為什麼要用Spring
現在已經很清晰了,用Spring可以讓各個模組耦合更鬆散,可以在業務邏輯之外進行增強代理,實現非業務功能。所以就算沒了Spring,也會有類似的其他框架來實現這些目的,而現在Spring的生態比較大,社群又比較活躍,為什麼不用呢?