# 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)