Spring學習整理
Spring概述
將Spring理解為管理對象間依賴關系的容器
“解耦”
根據功能的不同,可以將一個系統中的代碼分為 主業務邏輯 與 系統級業務邏輯 兩類
```
Spring 是為了解決企業級開發的復雜度問題
1.主業務邏輯
保險業務
銀行業務
2.系統級業務邏輯,交叉業務邏輯
jdbc連接數據庫
```
特點
輕量
針對接口編程解耦合
AOP編程的支持
方便集成各種優秀框架
spring框架結構
)
優點:
`
1.低侵入式設計,代碼汙染極低
2.獨立於各種應用服務器,基於Spring框架的應用,可以真正實現Write Once,Run Anywhere的承諾
3.Spring的DI機制降低了業務對象替換的復雜性,提高了組件之間的解耦
4.Spring的AOP支持允許將一些通用任務如安全、事務、日誌等進行集中式管理,從而提供了更好的復用
5.Spring的ORM和DAO提供了與第三方持久層框架的良好整合,並簡化了底層的數據庫訪問
6.Spring並不強制應用完全依賴於Spring,開發者可自由選用Spring框架的部分或全部`
)
Spring 由 20 多個模塊組成,它們可以分為數據訪問/集成(Data Access/Integration)、Web、面向切面編程(AOP, Aspects)、應用服務器設備管理(Instrumentation)、消息發送(Messaging)、核心容器(Core Container)和測試(Test)。
膠水框架
兼容主流解決方案
控制反轉Ioc
控制反轉(IoC,Inversion of Control),是一個概念,是一種思想。指將傳統上由程序代碼直接操控的對象調用權交給容器,通過容器來實現對象的裝配和管理。控制反轉就是對對象控制權的轉移,從程序代碼本身反轉到了外部容器。
oC 是一個概念,是一種思想,其實現方式多種多樣。當前比較流行的實現方式有兩種: 依賴註入和依賴查找。依賴註入方式應用更為廣泛。
依賴查找:Dependency Lookup,DL,容器提供回調接口和上下文環境給組件,程序代碼則需要提供具體的查找方式。比較典型的是依賴於 JNDI 系統的查找。
依賴註入:Dependency Injection,DI,程序代碼不做定位查詢,這些工作由容器自行完成。
依賴註入 DI 是指程序運行過程中,若需要調用另一個對象協助時,無須在代碼中創建被調用者,而是依賴於外部容器,由外部容器創建後傳遞給程序。
Spring 的依賴註入對調用者與被調用者幾乎沒有任何要求,完全支持 POJO 之間依賴關系的管理。
==依賴註入是目前最優秀的解耦方式==。依賴註入讓 Spring 的 Bean 之間以配置文件的方式組織在一起,而不是以硬編碼的方式耦合在一起的
第一個spring程序
測試spring
package com.cuiyuling.hello.spring; import com.cuiyuling.hello.spring.service.UserService; import javafx.application.Application; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringTest { public static void main(String[] args){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-context.xml"); UserService userService = (UserService) applicationContext.getBean("userService"); userService.sayHi(); } }
文件目錄結構
效果展示
配置文件
Spring學習整理