開發工具與關鍵技術:eclipse
作者:Mr_恺
撰寫時間:2021.01.8
DI(依賴注入)
元件之間的依賴關系由容器在應用系統運作期來決定, 也就是由容器動态地将某種依 賴關系的目标對象執行個體注入到應用系統中的各個關聯的元件之中。
Spring的依賴注入的方式:隻有3種(我們這裡隻涉及兩種)
第一種方式:通過構造函數注入
第二種方式:通過set方法注入
注入的内容:
第一類:基本類型和String類型
第二類:其他的bean類型
第三類:複雜類型(集合類型),不做示範
建立一個java項目,把用到的包和類建立好:
1、 構造函數注入用到的實作類
- set方法注入用到的實作類
把Spring的jar包引進來:
建立一個xml檔案并命名為bean.xml,導入Spring的限制
<!-- 導入spring的限制spring的IoC限制:beans-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
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">
第一種使用構造函數注入
涉及标簽:
constructor-arg 該标簽是寫在bean标簽内部的子标簽
标簽的屬性:
type:指定注入的參數在構造函數中的類型
index:指定要注入的參數在構造函數的索引位置 name:指定參數在構造函數的中的名稱
value:指定注入的資料内容,他隻能指定基本類型資料和String類型資料
ref:指定其他bean類型資料。寫的是其他bean的id。其他bean指的是存在于spring容器中的bean.
<bean id="accountService"
class="com.itheima.service.impl.AccountServiceImpl">
<constructor-arg name="name" value="凱哥"></constructor-arg>
<constructor-arg name="age" value="18"></constructor-arg>
<constructor-arg name="birthday" ref="now"></constructor-arg>
</bean>
<bean id="now" class="java.util.Date"></bean>
第二種使用set方法注入 最常用
涉及标簽:
property 該标簽是寫在bean标簽内部的子标簽
标簽的屬性: name:指定的是set方法的名稱。比對的是類中set後面的部分
value:指定注入的資料内容,他隻能指定基本類型資料和String類型資料
ref:指定其他bean類型資料。寫的是其他bean的id。其他bean指的是存在于spring容器中的bean
<bean id="accountService2"
class="com.itheima.service.impl.AccountServiceImpl2">
<property name="name" value="55"></property>
<property name="age" value="21"></property>
<property name="birthday" ref="now"></property>
</bean>
建立一個類模拟表現層運作,根據bean的id擷取對象,調用注入方法:
- 注入結果: