首頁 > 科技

全網首發美團大牛整理的Spring祕籍寶典+思維導圖,理論實戰齊飛

2021-06-26 17:41:41

Hello,今天給各位童鞋們分享的是Spring,趕緊拿出小本子記下來吧

1、spring

1.1、簡介

spring:給軟體行業帶來了春天

2002年首次推出了Spring框架的雛形: interface21框架

spring框架即以interface21框架為基礎,經過重新設計,並不斷豐富其內涵,於2004年3月24日,釋出了1.0正式版

Rod Johnson,spring Framework創始人,著名作者,很難想象他的學歷,他是悉尼大學的博士,然而他的專業不是計算機,而是音樂

spring理念:使現有的技術更加容易使用,本身是一個大雜燴,整合了現有的技術框架

SSH :Struct2 + Spring + Hibernate

SSM : Spring + SpringMvc + Mybatis

1.2、優點

Spring是一個開源的免費的框架(容器)Spring是一個輕量級的、非入侵式單獨框架控制反轉(IOC ), 面向切面程式設計(AOP)支援事務的處理,對框架整合的支援總結:Spring就是一個輕量級的控制反轉(IOC)和麵向切面程式設計(AOP)的框架1.3、組成

1.4、拓展

在Spring的官網有這個介紹:現代化的Java開發,說白了就是基於Spring的開發Spring Boot

一個快速開發的腳手架

基於SpringBoot可以快速地開發單個微服務

約定大於配置

Spring Cloud

SpringClould是基於SpringBoot實現的

因為現在大多數公司都在使用SpringBoot進行快速開發,學習SpringBoot的前提,需要完全掌握Spring以及SpringMVC

弊端:發展太久,違背原來的理念,配置十分繁瑣,人稱「配置地獄」

2、IOC理論推導

UserDao介面UserDaoImpl實現類UserService業務介面UserServiceImpl介面實現類~在我們之前的業務中,使用者的需求可能會影響我們原來的程式碼,我們需要根據使用者的需求去修改原始碼,如果程式程式碼量十分大,修改一次的成本代價十分昂貴

我們使用一個Set方法實現,已經發生可革命性的變化

之前,程式是主動創建物件,控制權在程式設計師手上使用了Set注入之後,程式不在具有主動性,而是變成了被動地接受物件private UserDao userDao;

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

這種思想,從本質上解決了問題,我們不用再去管理物件的創建了,系統的耦合性大大降低,可以更加專注在業務的實現上,這就是IOC的願望

IOC本質

控制反轉Ioc(Inversion of Control),是一種設計思想,DI(依賴注入)是實現Ioc的一種方法,也有人認為DI只是Ioc的另一種說法,沒有IOC的程式中,我們使用面向物件程式設計,物件的創建與物件間的依賴關係完全硬編碼在程式中,物件的創建由程式自己控制,控制反轉後將物件的創建轉移給第三方,個人認為所謂控制反轉就是:獲得依賴物件的方式反轉了。

採用XMl方式配置Bean的時候,Bean的定義資訊是和實現分離的,而採用註解的方式可以把兩者合為一體,Bean的定義資訊直接以註解的形式定義在實現類中,從而達到了零配置的目的

控制反轉是一種通過描述(XML或者註解)並通過第三方去生產獲取特定物件的方式,在Spring中實現控制反轉的是IOC容器,其實現方法是依賴注入(DependencyInjection,DI)

3、HelloSpring

導包

創建Hello類

編寫配置檔案applicationContext.xml

<bean id="hello" class="com.system.pojo.Hello">

<property name="id" value="123"/>

</bean>

測試

思考問題?

Hello物件是誰創建的?

Hello物件是由Spring創建的

Hello物件的屬性是怎麼設定的?

Hello物件的屬性是由Spring容器設定的

這個過程就叫控制反轉;

控制:誰來控制物件的創建,傳統應用程式的物件是由程式本身控制創建的,使用Spring後,物件是由Spring來創建的

反轉:程式本身不創建物件,而變成被動的接受物件

依賴注入:就是利用set方法來進行注入的

IOC是一種程式設計思想,由主動的程式設計變成被動的接受

可以通過newClassPathXmlApplicationContext去瀏覽一下底層程式碼

到了現在,我們要實現不同的操作,只需要在Xml配置檔案中進行修改,所謂的IOC,就是物件由Spring來創建,管理,裝配

4、IOC創建物件的方式

使用構造器注入

預設使用無參構造創建物件<bean id="user" class="com.system.pojo.User">

</bean>

可以使用有參構造創建物件1.下標賦值

2.通過類型創建,不建議使用

3.直接通過參數名來設定

注意:在配置檔案載入的時候,容器中管理的物件就已經創建了

5、Spring配置

5.1、別名

5.2、Bean的配置

id: bean的唯一標識符class: bean物件對應的全限定名:包名+類名name: 別名,可以同時取多個名<bean id="user" class="com.system.pojo.User" name="user2">

</bean>

5.3、import

一般用於團隊開發,可以將多個配置檔案匯入合併成一個

<import resource="bean1.xml"/>

<import resource="bean2.xml"/>

6、依賴注入

6.1、構造器注入

前面已經說過

6.2、Set方式注入【重點】

依賴注入:set注入依賴:bean物件的創建依賴於容器注入:bean隨想中的所有屬性,由容器來注入環境搭建

複雜類型

2.真實測試物件

3.applicationContext.xml

4.測試類

6.3、拓展方式注入

可以使用p名稱空間和c名稱空間進行注入

配置檔案

<bean id="address" class="com.system.pojo.Address" p:pro="北京" p:city="亦莊"/>

<bean id="address" class="com.system.pojo.Address" c:_0="北京" c:_1="朝陽"/>

6.4、Bean的作用域

1.單例模式:Spring預設機制

<bean id="address" class="com.system.pojo.Address" scope="singleton">

</bean>

2.原型模式:每次從容器中獲取物件的時候,都會產生一個新物件

<bean id="address" class="com.system.pojo.Address" scope="prototype">

<property name="city" value="大興"/>

<property name="pro" value="北京"/>

</bean>

3.其餘request,session,application這些只能在web開發中使用到

7、Bean的自動裝配

自動裝配是Spring滿足bean依賴一種方式

Spring會在上下文中自動尋找,並自動給bean裝配屬性

在Spring中有三種裝配的方式

1.在xml中顯示的配置

2.在Java中顯示配置

3.隱式的自動裝配bean(重要)

好啦,今天的文章就到這裡了,希望能夠幫助到螢幕前迷茫的你們


IT145.com E-mail:sddin#qq.com