---
# System prepended metadata

title: Spring 2/23上課內容
tags: [Spring]

---

# Spring 2/23上課內容
###### tags: `Spring`

#### 指導老師
![](https://i.imgur.com/3uX1oT0.png)

# 1 Spring動態網站開發(目錄)
![](https://i.imgur.com/m4XaiLv.png)
* **Spring主軸**
    * 學會獨立 
    * 不要過度依賴
---    
![](https://i.imgur.com/iztTniC.png)

# 3 Spring動態網站開發
![](https://i.imgur.com/KgBrWBp.png)
* 重量級: 依賴作業系統(過度依賴)
* 輕量級: 不管怎樣都可以執行(必較不依賴作業系統)[效率較高]
![](https://i.imgur.com/WLEZp6r.png)
* 物件與物件的關係
* **ioc**
    * di(依賴注入)是ioc的一種實現
    * 控制反轉
    
# 4 Spring動態網站開發(四大類)
![](https://i.imgur.com/Q2WcrkU.png)
[Spring](https://spring.io/)
* **早期SSH**
    * Struts Spring Hibernate
* **現在SSH**
    * SpringMVC Spring Hibernate 
    
[Spring Framework](https://spring.io/projects/spring-framework)

# 5 Spring動態網站開發
![](https://i.imgur.com/7wgLFdh.png)
* WebSocket: 即時通訊軟體(其中一個工作)
* Core Containgr(核心)
 ---
![](https://i.imgur.com/6yz3YsW.png)
* **BeanFactory**
    * 控制所有Bean元件
* Spring Framework 設定檔物件

# 6 Spring動態網站開發
![](https://i.imgur.com/HYM2KXn.png)
![](https://i.imgur.com/c4iq9ag.png)
* **攔截器**
    * 每一頁有登入條件 先決定每頁都有登入功能
    * 不用修改原來程式 就會自動判斷

# 7 Spring動態網站開發(控制反轉Inversion of Control)
![](https://i.imgur.com/yEMwVId.png)
降低依賴

# 8 Spring動態網站開發
![](https://i.imgur.com/QRqHWOP.png)
* 早期Service依賴DAO做事
* Ioc把Service,DAO作為獨立的物件
* 總結:降低依賴關係
---
### 版本0
![](https://i.imgur.com/ED0hExr.png)
* 有物件導向概念 

# 9 Spring動態網站開發
### 版本1
![](https://i.imgur.com/B27WlQM.png)
* 重複利用
---
### 版本2
![](https://i.imgur.com/XjWfRRw.png)

# 10 Spring動態網站開發 
![](https://i.imgur.com/wXdKA6T.png)

---
![](https://i.imgur.com/8SWFd3Q.png)

# 11 Spring動態網站開發(依賴注入Dependency Injection)
* 不用更動原來程式碼
![](https://i.imgur.com/Fpe5JNI.png)
* 被依賴
![](https://i.imgur.com/1G0eRed.png)
* 依賴的
![](https://i.imgur.com/Q9f2Bsa.png)

# 12 Spring動態網站開發
![](https://i.imgur.com/nhHX55i.png)
* [equals](https://docs.microsoft.com/zh-tw/dotnet/api/system.string.equals?view=net-5.0):忽略大小寫
* String 任何類別型別都能用null
---
![](https://i.imgur.com/o3iTYKk.png)
* 找別人做事 中介商概念

# 13 Spring動態網站開發
![](https://i.imgur.com/zJtnIYS.png)

---
* 依賴寫法
![](https://i.imgur.com/0LjVQUV.png)
用建構子帶進來
* 同名原因:怕給錯 以後會帶多個參數 名子才不會給錯

# 14 Spring動態網站開發
![](https://i.imgur.com/5oimJXj.png)
* hibernate用get方法
* Spring用Set方法or Constructor
* 宣告變數第一個單字全部用小寫
---
![](https://i.imgur.com/z6OGauE.png)



![](https://i.imgur.com/AHX6MVE.png)

### 28 Spring動態網站開發(提供bean的組態資訊)
![](https://i.imgur.com/P7ZcOTQ.png)

---
![](https://i.imgur.com/9oJKzkO.png)
上面早期  下面新一代

### 29 Spring動態網站開發
![](https://i.imgur.com/3XGDe0K.png)
* 註冊設定檔 BeanFactory
* 裝起來的環境Bean Container
[Spring api](https://docs.spring.io/spring-framework/docs/current/javadoc-api/)
---
![](https://i.imgur.com/9iomjvL.png)

### 30 Spring動態網站開發
![](https://i.imgur.com/Pj4vJWq.png)
* 由Class路徑找xml檔
[api](https://docs.spring.io/spring-framework/docs/current/javadoc-api/)
![](https://i.imgur.com/2mCsWqV.png)

---
![](https://i.imgur.com/zCRa3J7.png)

### 31 Spring動態網站開發(三種都要會)
![](https://i.imgur.com/Hj8YCIR.png)
在每個Bean元件上面設定組態

### 32 Spring動態網站開發(組態檔說明Bean組裝資訊)(Bean Configuration File)
![](https://i.imgur.com/vXHp9pa.png)
* ...(variable arguments)

---
![](https://i.imgur.com/YdcuQch.png)

### 33 Spring動態網站開發
![](https://i.imgur.com/Fqem12G.png)
constructor-arg 建構子
[String class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)
![](https://i.imgur.com/GnmEOji.png)
