Spring是一個(gè)開源框架,是為了解決企業(yè)級應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的,現(xiàn)在不止應(yīng)用于企業(yè)應(yīng)用。
- 是一個(gè)輕量級的控制反轉(zhuǎn)(Ioc)和面向切面(AOP)的容器框架
- 控制反轉(zhuǎn)指將控制權(quán)交出去 在使用時(shí)得到這個(gè)對象
- 大小開銷方面 Spring都是輕量的
- 通過控制反轉(zhuǎn)(Ioc)的技術(shù)達(dá)到松耦合的目的
- 提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)服務(wù)進(jìn)行內(nèi)聚性開發(fā)
- 包含并管理應(yīng)用對象的配置和生命周期,意義上是一種容器
-將簡單的組件配置、組合成復(fù)雜的應(yīng)用,這個(gè)意義上是框架
- 在Spring 開發(fā)應(yīng)用簡單、方便、快捷 (Spring 替我們管理了這些Bean(對象))
適用范圍
- 構(gòu)建企業(yè)應(yīng)用(SpringMVC+Spring+Hibernate+ibatis)
- 單獨(dú)適用Bean容器(Bean管理)
- 單獨(dú)適用AOP進(jìn)行切面處理
- 適用Spring功能,如對消息的處理
- 在互聯(lián)網(wǎng)的應(yīng)用
什么是框架
框架就在制定一項(xiàng)規(guī)則或規(guī)范(思想),程序員在該規(guī)范或者規(guī)則(思想下工作),或者使用別人搭好的舞臺(tái),你來表演。
框架的特點(diǎn)
- 半成品
- 封裝了特定的處理流程和控制邏輯
- 成熟的、不斷升級改進(jìn)的軟件
框架與類庫的區(qū)別 - 框架一般是封裝了邏輯、高內(nèi)聚的,類庫是松散的工具組合
- 框架專注于某一領(lǐng)域,類庫是通用的
為什么使用框架
- 軟件系統(tǒng)日趨復(fù)雜
- 重用度高,開發(fā)效率和質(zhì)量提高
- 軟件設(shè)計(jì)人員要專注于對領(lǐng)域的了解,使需求分析更加充分
- 易于上手、快速解決問題
接口
java接口即聲明,聲明哪些方法是對外公開提供的
接口只能有聲明不能有實(shí)現(xiàn) (java8 可以有方法體)
抽象類 有聲明有實(shí)現(xiàn)
類 有實(shí)現(xiàn)
- 面向接口編程,接口實(shí)現(xiàn)的變動(dòng)不影響各層間的調(diào)用,這在公共服務(wù)中尤為重要
- 面向接口編程中的"接口"是用于隱藏具體實(shí)現(xiàn)和實(shí)現(xiàn)多態(tài)性
IOC
IOC:控制反轉(zhuǎn),控制權(quán)的轉(zhuǎn)移,應(yīng)用程序不進(jìn)行依賴對象的創(chuàng)建和維護(hù),
而是由外部容器(Spring)來創(chuàng)建和維護(hù) 知識(shí)負(fù)責(zé)使用
- DI(依賴注入) 是一種實(shí)現(xiàn)方式
- 目的創(chuàng)建對象并組裝對象之間的關(guān)系
獲得依賴對象的過程被反轉(zhuǎn)了,"控制反轉(zhuǎn)"更合適的名字"依賴注入"(Dependency Injection).
所謂依賴注入,就是IOC容器在運(yùn)行期間,動(dòng)態(tài)的將某種依賴關(guān)系注入到對象之中
**IOC流程 - 找IOC容器
- 容器返回對象
- 使用對象
IOC容器中把所有的對象都稱為bean