- 項目開發環境
- IntelliJ IDEA建立Spring項目
- 使用例子介紹框架的作用
- Spring框架建立物件的過程
- 了解Spring框架的執行過程和沒有框架的差異
項目開發環境
IntelliJ IDEA 2018.3.6
JRE: 1.8.0_152-release-1343-b28 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.3
IntelliJ IDEA建立Spring項目
- 打開IntelliJ IDEA
- 點擊Create New Project
- 左方選單選擇「Spring」,勾選「Spring」,可以一併勾選「create empty spring-config.xml」自動生成spring配置文件,或者生成項目後再滑鼠右鍵建立新的xml文件,然後按下「Next」
- 設置項目名稱和存放路徑,然後按下「Finish」
- IntelliJ IDEA就會自動下載Spring需要的jars
- 下載完成後,就可以看見Spring項目下有jars和配置文件
使用例子介紹框架的作用
不使用框架
新增一個HelloWorld類別,定義一個name屬性、一個sayHello方法、和一個setter方法設置name屬性。
當我們不使用框架時,如果要調用sayHello方法,需要有三個步驟。
- 建立一個HelloWorld的實體物件
- 設置實體物件的name屬性
- 調用物件的sayHello方法
接下來運行程式,成功輸出「Hello Spring」。
使用Spring框架
打開spring-config.xml加入配置內容,配置好了HelloWorld Bean的信息,我們調用sayHello方法和之前不一樣,但依然有三個步驟。
- 建立一個Spring的IOC容器物件
- 從IOC容器中獲取Bean實體
- 調用物件的sayHello方法
接下來運行程式,成功同樣是輸出「Hello Spring」。
但兩者比較下,結果有點不一樣,兩者結果都輸出了「Hello Spring」,但使用Spring框架輸出了更多內容,原來這些內容是Spring輸出的日誌。
我們在使用Spring的時候明明沒有建立HelloWorld的實體物件,只是配置了Spring的配置文件,為甚麼同樣可以調用到sayHello方法呢?這其實是因為我們使用了Spring的IOC功能,把物件的建立和管理的功能都交給了Spring框架去管理,我們需要物件的時候,只需要和Spring請求取得就可以。
Spring框架建立物件的過程
我們來觀察一下Spring框架建立物件的過程,首先修改在HelloWorld類別的構造方法和setter方法,然後加入breakpoint斷點後執行Debug除錯模式。
我們可以觀察輸出結果看到,當運行到第一步建立IOC容器物件的時候就調用了HelloWorld類別的構造方法和setter方法。
了解Spring框架的執行過程和沒有框架的差異
從這個的例子得出結論,我們沒有使用框架的時候,需要自己建立和管理,而使用Spring框架,Spring幫助完成了建立和管理的步驟。所以,使用Spring後,不需要去建立物件,也不需要設置物件的屬性,只需要寫好Spring的配置文件,Spring就會自動完成,當需要物件的時候,直接透過Spring取得便可。
