spring框架學習 依賴注入
spring框架為我們提供了三種注入方式,分別是set注入,構造方法注入,介面注入。介面注入不作要求,下面介紹前兩種方式。
1,set注入
採用屬性的set方法進行初始化,就成為set注入。
1)給普通字元型別賦值。
public class User{
privateString username;
publicString getUsername() {
returnusername;
}
publicvoid setUsername(String username) {
this.username= username;
}
}
我們只需要提供屬性的set方法,然後去屬性檔案中去配置好讓框架能夠找到applicationContext.xml檔案的beans標籤。標籤beans中新增bean標籤, 指定id,class值,id值不做要求,class值為物件所在的完整路徑。bean標籤再新增property 標籤,要求,name值與User類中對應的屬性名稱一致。value值就是我們要給User類中的username屬性賦的值。
<bean id="userAction"class="com.lsz.spring.action.User" >
<property name="username" value="admin"></property>
</bean>
2)給物件賦值
同樣提供物件的set方法
-
public class User{ private UserService userservice; public UserServicegetUserservice() { returnuser; } public void setUserservice(UserService userservice){ this.userservice= userservice; } }
配置檔案中要增加UserService的bean標籤宣告及User物件對UserService引用。
-
<!--物件的宣告--> <bean id="userService" class="com.lsz.spring.service.UserService"></bean> <bean id="userAction"class="com.lsz.spring.action.User" > <property name="userservice" ref="userService"></property> </bean>
這樣配置,框架就會將UserService物件注入到User類中。
3)給list集合賦值
同樣提供set方法
-
public class User{ privateList<String> username; publicList<String> getUsername() { returnusername; } publicvoid setUsername(List<String> username) { this.username= username; } }
-
<bean id="userAction"class="com.lsz.spring.action.User" > <propertyname="username"> <list> <value>zhang,san</value> <value>lisi</value> <value>wangwu</value> </list> </property> </bean>
4)給屬性檔案中的欄位賦值
-
public class User{ privateProperties props ; publicProperties getProps() { returnprops; } publicvoid setProps(Properties props) { this.props= props; } }
-
<bean> <propertyname="props"> <props> <propkey="url">jdbc:oracle:thin:@localhost:orl</prop> <propkey="driverName">oracle.jdbc.driver.OracleDriver</prop> <propkey="username">scott</prop> <propkey="password">tiger</prop> </props> </property> </bean>
<prop>標籤中的key值是.properties屬性檔案中的名稱
注意:
無論給什麼賦值,配置檔案中<property>標籤的name屬性值一定是和物件中名稱一致。
2構造方法注入
1)構造方法一個引數
-
public class User{ privateString usercode; publicUser(String usercode) { this.usercode=usercode; } }
<bean id="userAction"class="com.lsz.spring.action.User">
<constructor-argvalue="admin"></constructor-arg>
</bean>
2)建構函式有兩個引數時
當引數為非字串型別時,在配置檔案中需要制定型別,如果不指定型別一律按照字串型別賦值。
當引數型別不一致時,框架是按照字串的型別進行查詢的,因此需要在配置檔案中制定是引數的位置
-
<constructor-argvalue="admin"index="0"></constructor-arg> <constructor-argvalue="23" type="int"index="1"></constructor-arg>
這樣制定,就是建構函式中,第一個引數為string型別,第二個引數為int型別
相關文章
- Spring學習(三)依賴注入Spring依賴注入
- Spring 依賴注入 DISpring依賴注入
- Spring IOC——依賴注入Spring依賴注入
- spring 的依賴注入Spring依賴注入
- Spring.Net 依賴注入Spring依賴注入
- Spring系列.依賴注入配置Spring依賴注入
- 大白話spring依賴注入Spring依賴注入
- Spring學習:簡單實現一個依賴注入和迴圈依賴的解決Spring依賴注入
- Spring的依賴注入的方式Spring依賴注入
- Laravel底層學習筆記01 - 框架核心,依賴注入,閉包Laravel筆記框架依賴注入
- Spring原始碼解析——依賴注入(二)Spring原始碼依賴注入
- Spring 控制反轉和依賴注入Spring依賴注入
- 死磕Spring原始碼-依賴注入Spring原始碼依賴注入
- net5學習筆記---依賴注入筆記依賴注入
- Spring系列第八講 依賴注入之手動注入Spring依賴注入
- 放棄dagger?Anrdoi依賴注入框架koin依賴注入框架
- 簡單談談Hilt——依賴注入框架依賴注入框架
- 「Laravel 核心學習」類的反射和依賴注入Laravel反射依賴注入
- Spring6框架中依賴注入的多種方式(推薦構造器注入)Spring框架依賴注入
- Spring【依賴注入】就是這麼簡單Spring依賴注入
- 手寫Spring---DI依賴注入(2)Spring依賴注入
- Spring的三種依賴注入的方式Spring依賴注入
- spring常用的三種依賴注入方式Spring依賴注入
- angular依賴注入Angular依賴注入
- XUnit 依賴注入依賴注入
- Golang 依賴注入設計哲學|12.6K 🌟 的依賴注入庫 wireGolang依賴注入
- Util應用框架基礎(一) - 依賴注入框架依賴注入
- 依賴注入?依賴注入是如何實現解耦的?依賴注入解耦
- Spring 原始碼分析之 bean 依賴注入原理(注入屬性)Spring原始碼Bean依賴注入
- Spring原始碼系列:依賴注入(四)-總結Spring原始碼依賴注入
- spring 詳細講解(ioc,依賴注入,aop)Spring依賴注入
- ASP.NET Core 學習筆記 第三篇 依賴注入框架的使用ASP.NET筆記依賴注入框架
- Spring框架模組依賴關係Spring框架
- 學習記錄-Laravel 核心 依賴注入 控制反轉 反射Laravel依賴注入反射
- 200行Java程式碼實現依賴注入框架Java依賴注入框架
- 我看依賴注入依賴注入
- 依賴注入系列教程依賴注入
- 理解 Angular 依賴注入Angular依賴注入