Spring IOC創(chuàng)建對象的兩種方式
IOC創(chuàng)建對象的方式
一、 使用無參構造創(chuàng)建對象(默認方式)
創(chuàng)建實體類
注意:屬性必須要有set方法,來完成注入
public class User {
private String name;
public User() {
System.out.println("執(zhí)行了User類的無參構造方法~");
}
public User(String name){
this.name = name;
System.out.println("執(zhí)行了User類的有參構造方法");
}
//使用無參構造方法時,必須要設置set方法,因為注入時 需要通過set方法注入
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
配置Bean
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user" class="com.test.pojo.User">
<property name="name" value="gyp"/>
</bean>
</beans>
測試類
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = context.getBean("user", User.class);
System.out.println(user);
}
}
結果:

二、使用有參構造創(chuàng)建對象
- 通過下標注入
- 通過名字注入 【推薦】
- 通過類型注入
有參構造,不需要set方法注入
通過下標方式注入(通過index來選擇,給有參構造的第幾個參數(shù)注入)
(1)配置Bean
<bean id="user" class="com.test.pojo.User">
<constructor-arg index="0" value="gyp"/>
</bean>
(2)測試結果

通過名字注入
(1)配置Bean
<bean id="user" class="com.test.pojo.User">
<constructor-arg name="name" value="gyp"/>
</bean>
(2)測試結果

通過類型注入(不建議使用!因為當類里面有兩個相同類型的屬性時,無法給屬性注入)
(1)配置Bean
<bean id="user" class="com.test.pojo.User">
<constructor-arg type="java.lang.String" value="gyp"/>
</bean>
(2)測試結果

總結:在加載配置文件的時候,IOC就已經(jīng)創(chuàng)建好了對象!
到此這篇關于Spring IOC創(chuàng)建對象的兩種方式的文章就介紹到這了,更多相關Spring IOC創(chuàng)建對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring?Boot如何在加載bean時優(yōu)先選擇我
這篇文章主要介紹了Spring?Boot如何在加載bean時優(yōu)先選擇我,在?Spring?Boot?應用程序中,我們可以采取三種方式實現(xiàn)自己的?bean?優(yōu)先加載,本文通過實例代碼給大家詳細講解,需要的朋友可以參考下2023-03-03
Spring中bean的初始化和銷毀幾種實現(xiàn)方式詳解
這篇文章主要介紹了Spring中bean的初始化和銷毀幾種實現(xiàn)方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
淺談基于SpringBoot實現(xiàn)一個簡單的權限控制注解
這篇文章主要介紹了基于SpringBoot實現(xiàn)一個簡單的權限控制注解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
SpringBoot中過濾器Filter+JWT令牌實現(xiàn)登錄驗證
本文主要介紹了SpringBoot中過濾器Filter+JWT令牌實現(xiàn)登錄驗證,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-04-04

