一、Spring 檔案配置
使用Spring 最基本需要幾個基本的jar包

使用maven加載到本地倉庫
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
簡單的實作第一個Spring基本部署
第一
先建一個普通的maven 專案 在pom.xml 中下載上訴提到的maven
檢測旁邊的maven 是否成功匯入


第二
在java中建一個普通的User類

這里 用了 lombok 來代替了 get set 和構造 方法 并且重寫了 一個toString , 沒有lombok插件的需要手動寫入方法,
第三
配置 Spring的xml 組態檔
這個檔案需要你在resources資源包中創建
使用IDEA


他會自動的幫你創建好 關于Spring的組態檔
如果需要手動創建的話 就先創建一個xml檔案 然后將 以下的配置資訊輸入進去
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
這段配置是 關于bean注入的規范 有了這一些規范 我們就可以在xml實作簡單的bean注入了
這樣就完成了一個Spring的基本部署
二、Spring Bean注入
在實作注入前需要了解 IOC模式(控制反轉)是一個什么東西
控制反轉(Inversion of Control,縮寫為IoC),是面向物件編程中的一種設計原則,可以用來減低計算機代碼之間的耦合度
看一下官方的解釋
IoC模式,系統中通過引入實作了IoC模式的IoC容器,即可由IoC容器來管理物件的生命周期、依賴關系等,從而使得應用程式的配置和依賴性規范與實際的應用程式代碼分離, 其中一個特點就是通過文本的組態檔進行應用程式組件間相互關系的配置,而不用重新修改并編譯具體的代碼
按我解釋來講就是 ioc是將程式的主動性由內部轉移至外部 由用戶操作而不是靠程式員修改,就是不用在修改需求而是增加需求,
ioc 其實就是一個幫助用戶管理的一個容器 用戶只需選擇自己所需要的物件 ioc就會自動 幫助實體化
但是要注意的是ioc并不是一個具體的類而是一種設計模式


注意:這上面代碼只是簡單的說明了IOC的主要思想 并不是真正的IOC,
Spring IOC
介面
org.springframework.context.ApplicationContext代表 Spring IoC 容器,并負責實體化,配置和組裝上述 bean,容器通過讀取配置元資料來獲取有關要實體化,配置和組裝哪些物件的指令,配置元資料以 XML,Java 注解或 Java 代碼表示,它使您能夠表達組成應用程式的物件以及這些物件之間的豐富相互依賴關系,
在Spring中 我們物件的實體化 是由Spring組態檔的bean注入物件資訊 到IOC容器中裝配 然后又由IOC指令進行實體化

這樣就完成了一個簡單的Spring

這個是bean 標簽的所有屬性 其中constructor arguments和properties 是兩種不同的注入方式 前者是構造注入 后者是set注入 ,前者要求物體類擁有有參構造 后者是要求擁有set方法,
autowiring 是自動裝配 這個是針對物體類中的屬性存在另外一個物體型別別

這樣用 普通set注入是無法很方便進行注入 再注入的同時也是需要將物體類實體化后進行注入
因此我需要將像這種 address地址類 也弄一個bean


也就是相當于 setAdress(new Address("廈門" , "X804154") );
當然Spring也通過另外一種方法進行注入 就是通過 自動裝配

主要的自動裝配就是主要通過 id或者是型別
通過自動裝配 物體類屬性就可以不用寫 <property> 就可以實作注入
byName是通過id 只上面物體類的id會和類名字相同就可以匹配到

而byType就通過型別進行自動裝配 而不是通過byName 最大的優點就可以就同時bean 兩種相同的型別但不同名字的物件
而byType 的優點 就是可以通過 型別 快速裝配 不用去定義id 或是name
還有一個比較重點的bean 屬性 就是scope

其中最要的兩個屬性就是
singleton 和 prototype 一個是單例模式 一個是原形模式

單例模式 就是當你從容器中 第一次getBean()實體化物件時 他就會把物件存入到快取中 下次再次使用 容器的getBean()獲取同一個物件時
就不會通過容器實體化而是直接從快取中取得 在debug可以明顯看到兩次取的物件的地址是相同,
而原形模式就是將快取取消 每次執行都是新創建一個物件 不再是從快取中拿取,
單例模式 官方檔案圖

原形模式 官方檔案圖

未完待續.....
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/289856.html
標籤:java
上一篇:從零學Java(9)之修飾符,小AD竟打起了錢的主意!
下一篇:SpringBoot個人總結
