Spring IOC創(chuàng)建對象的兩種方式
IOC創(chuàng)建對象的方式
一、 使用無參構(gòu)造創(chuàng)建對象(默認(rèn)方式)
創(chuàng)建實體類
注意:屬性必須要有set方法,來完成注入
public class User {
private String name;
public User() {
System.out.println("執(zhí)行了User類的無參構(gòu)造方法~");
}
public User(String name){
this.name = name;
System.out.println("執(zhí)行了User類的有參構(gòu)造方法");
}
//使用無參構(gòu)造方法時,必須要設(shè)置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);
}
}
結(jié)果:

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

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

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

總結(jié):在加載配置文件的時候,IOC就已經(jīng)創(chuàng)建好了對象!
到此這篇關(guān)于Spring IOC創(chuàng)建對象的兩種方式的文章就介紹到這了,更多相關(guān)Spring IOC創(chuàng)建對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Spring Security集成手機(jī)驗證碼登錄功能實現(xiàn)
本文詳細(xì)介紹了如何利用SpringSecurity來實現(xiàn)手機(jī)驗證碼的注冊和登錄功能,在登錄過程中,同樣需通過驗證碼進(jìn)行驗證,文章還提供了相關(guān)的代碼實現(xiàn)2024-10-10
springboot+thymeleaf+layui的實現(xiàn)示例
本文主要介紹了springboot+thymeleaf+layui的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
SpringBoot中使用@ControllerAdvice注解詳解
這篇文章主要介紹了SpringBoot中使用@ControllerAdvice注解詳解,@ControllerAdvice,是Spring3.2提供的新注解,它是一個Controller增強(qiáng)器,可對controller中被 @RequestMapping注解的方法加一些邏輯處理,需要的朋友可以參考下2023-10-10
EasyExcel工具讀取Excel空數(shù)據(jù)行問題的解決辦法
EasyExcel是阿里巴巴開源的一個excel處理框架,以使用簡單,節(jié)省內(nèi)存著稱,下面這篇文章主要給大家介紹了關(guān)于EasyExcel工具讀取Excel空數(shù)據(jù)行問題的解決辦法,需要的朋友可以參考下2022-08-08

