用自己的話說 spring是一個架構 通過Java語言開發出來的一個架構或者說一個項目産品
導入Jar包
編寫配置檔案
讀取配置檔案并執行個體化spring容器
調用方法 拿到資料
<code>SpringIOC(控制反轉)</code>
<code>SpringAOP(面向切向)</code>
<code>SpringIOC</code>是解決控制反轉的一種<code>思想</code> <code>DI(依賴注入)</code>是來實作這一思想的
<code>SpringIOC</code>看成接口 <code>DI(依賴注入)</code>是接口的實作類
建立一個maven項目
編寫<code>beans.xml</code>配置檔案(檔案名可以自定義)
測試
<code>輸出結果</code>
我想使用oracle資料庫
有<code>幾個</code>地方值得關注
一、在<code>UserOracleImpl</code>新增無參構造函數
當執行個體化spring容器時 即<code>new ClassPathXmlApplicationContext("beans.xml");</code>
控制台會輸出 我<code>是無參構造函數</code> 可以猜想到 内部操作實際替我們執行了new UserOracleImpl()
new UserMysqlImpl()等無參構造函數 且<code>輸出順序</code>跟配置檔案的順序<code>有關</code>配置的越早 輸出的越早
二、如果<code>getBean</code>方法中第一個參數值傳錯即沒有在spring容器中找到對應的id
會抛錯 <code>No bean named 'xxx' available</code>
三、當配置都ok的情況下 調用方法 如果有需要開發其他的需求 配置檔案中直接操作 不需要更改代碼邏輯
四、<code>配置檔案</code>有幾個好處 <code>管理友善</code> 所有的bean即Java對象在配置檔案中管理 需要操作什麼 一目了然
<code>降低了類和類之間的耦合性</code> 建立對象完全由<code>spring</code>容器操作 程式本身不需要管 也不管什麼時候建立的
什麼時候指派的 當個'工具任' 輸出結果就好了
即使再小的帆也能遠航