spring 掌握這些就夠了
1、概述及IOC理論推導
Spring概述
Spring : 春天 —>給軟體行業帶來了春天
2002年,Rod Jahnson首次推出了Spring框架雛形interface21框架。
2004年3月24日,Spring框架以interface21框架為基礎,經過重新設計,釋出了1.0正式版。
很難想象Rod Johnson的學歷 , 他是悉尼大學的博士,然而他的專業不是計算機,而是音樂學。
Spring理念 : 使現有技術更加實用 . 本身就是一個大雜燴 , 整合現有的框架技術
優點
1、Spring是一個開源免費的框架 , 容器 .
2、Spring是一個輕量級的框架 , 非侵入式的 .
3、控制反轉 IoC , 面向切面 Aop
4、對事物的支援 , 對框架的支援
…
一句話概括:
Spring是一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器(框架)。
組成
Spring 框架是一個分層架構,由 7 個定義良好的模組組成。Spring 模組構建在核心容器之上,核心容器定義了建立、配置和管理 bean 的方式 .
組成 Spring 框架的每個模組(或元件)都可以單獨存在,或者與其他一個或多個模組聯合實現。每個模組的功能如下:
- 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要元件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉(IOC) 模式將應用程式的配置和依賴性規範與實際的應用程式程式碼分開。
- Spring 上下文:Spring 上下文是一個配置檔案,向 Spring 框架提供上下文資訊。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和排程功能。
- Spring AOP:通過配置管理特性,Spring AOP 模組直接將面向切面的程式設計功能 , 整合到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理任何支援 AOP的物件。Spring AOP 模組為基於 Spring 的應用程式中的物件提供了事務管理服務。通過使用 Spring AOP,不用依賴元件,就可以將宣告性事務管理整合到應用程式中。
- Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供應商丟擲的錯誤訊息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常程式碼數量(例如開啟和關閉連線)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。
- Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的物件關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。
- Spring Web 模組:Web 上下文模組建立在應用程式上下文模組之上,為基於 Web 的應用程式提供了上下文。所以,Spring 框架支援與 Jakarta Struts 的整合。Web 模組還簡化了處理多部分請求以及將請求引數繫結到域物件的工作。
- Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程式的 MVC 實現。通過策略介面,MVC 框架變成為高度可配置的,MVC 容納了大量檢視技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。
擴充
Spring Boot與Spring Cloud
- Spring Boot 是 Spring 的一套快速配置腳手架,可以基於Spring Boot 快速開發單個微服務;
- Spring Cloud是基於Spring Boot實現的;
- Spring Boot專注於快速、方便整合的單個微服務個體,Spring Cloud關注全域性的服務治理框架;
- Spring Boot使用了約束優於配置的理念,很多整合方案已經幫你選擇好了,能不配置就不配置 , Spring Cloud很大的一部分是基於Spring Boot來實現,Spring Boot可以離開Spring Cloud獨立使用開發專案,但是Spring Cloud離不開Spring Boot,屬於依賴的關係。
- SpringBoot在SpringClound中起到了承上啟下的作用,如果你要學習SpringCloud必須要學習SpringBoot。
2、IoC基礎
新建一個空白的maven專案
分析實現
我們先用我們原來的方式寫一段程式碼 .
1、先寫一個UserDao介面
public interface UserDao {
public void getUser();
}
2、再去寫Dao的實現類
public class UserDaoImpl implements UserDao {
@Override
public void getUser() {
System.out.println("獲取使用者資料");
}
}
3、然後去寫UserService的介面
3、HelloSpring
4、IOC建立物件方式
5、Spring配置
6、DI依賴注入
7、Bean的自動裝配
8、使用註解實現自動裝配
9、使用註解開發
10、代理模式
11、AOP
12、整合MyBatis
13、spring事務
相關文章
- springmvc知道這些就夠了SpringMVC
- 關於 nginx 前端知道這些就夠了Nginx前端
- Android混淆——瞭解這些就夠了Android
- 掌握jQuery外掛開發,這篇文章就夠了jQuery
- JS壓縮圖片?掌握這一篇就夠了JS
- Spring入門這一篇就夠了Spring
- 使用 github 做程式碼管理,知道這些就夠了Github
- spring boot入門,看這篇文章就夠了Spring Boot
- 搞透 IOC,Spring IOC 看這篇就夠了!Spring
- Spring入門看這一篇就夠了Spring
- NGINX 從入門到精通,學會這些就夠了Nginx
- 要知道AI的工作原理,Get這些點就夠了AI
- 精益工廠佈局考慮這些就夠了!
- 前端面試考點多?看這些文章就夠了前端面試
- 區塊鏈是什麼?讀懂這些就夠了!區塊鏈
- 學Redis這篇就夠了Redis
- mongoDB看這篇就夠了MongoDB
- TCP/IP 知道這些就夠用了TCP
- Makefile經典教程(掌握這些足夠)
- 前端 --弄懂JS的變數提升做這些題就夠了前端JS變數
- 如何提升開發效率?用這些免費API就夠了API
- 掌握 CORS 跨域請求,讀這一篇文章就夠了CORS跨域
- 學習Spring5 WebFlux這一篇就夠了SpringWebUX
- HTML教程(看完這篇就夠了)HTML
- 想熟悉PostgreSQL?這篇就夠了SQL
- Oracle索引,看這篇就夠了Oracle索引
- 遷移學習(Transfer),面試看這些就夠了!(附程式碼)遷移學習面試
- 從零開始學做微信小程式,看這些就夠了!微信小程式
- 關於在 Node.js 中引用模組,知道這些就夠了Node.js
- Android音視訊播放器框架看這些就夠了Android播放器框架
- 關於世界網際網路大會看完這些就夠了
- Spring中的BeanFactory與FactoryBean看這一篇就夠了SpringBean
- Spring Schedule定時任務看這一篇就夠了Spring
- MySQL事務,這篇文章就夠了MySql
- 入門Webpack,看這篇就夠了Web
- APP瘦身這一篇就夠了APP
- Android Fragment看這篇就夠了AndroidFragment
- HttpServletRequest,看這篇文章就夠了HTTPServlet