Spring IOC創(chuàng)建對象的兩種方式
IOC創(chuàng)建對象的方式
一、 使用無參構(gòu)造創(chuàng)建對象(默認(rèn)方式)
創(chuàng)建實(shí)體類
注意:屬性必須要有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í),必須要設(shè)置set方法,因?yàn)樽⑷霑r(shí) 需要通過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)造的第幾個(gè)參數(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é)果
通過類型注入(不建議使用!因?yàn)楫?dāng)類里面有兩個(gè)相同類型的屬性時(shí),無法給屬性注入)
(1)配置Bean
<bean id="user" class="com.test.pojo.User"> <constructor-arg type="java.lang.String" value="gyp"/> </bean>
(2)測試結(jié)果
總結(jié):在加載配置文件的時(shí)候,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ī)驗(yàn)證碼登錄功能實(shí)現(xiàn)
本文詳細(xì)介紹了如何利用SpringSecurity來實(shí)現(xiàn)手機(jī)驗(yàn)證碼的注冊和登錄功能,在登錄過程中,同樣需通過驗(yàn)證碼進(jìn)行驗(yàn)證,文章還提供了相關(guān)的代碼實(shí)現(xiàn)2024-10-10springboot+thymeleaf+layui的實(shí)現(xiàn)示例
本文主要介紹了springboot+thymeleaf+layui的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12SpringBoot中使用@ControllerAdvice注解詳解
這篇文章主要介紹了SpringBoot中使用@ControllerAdvice注解詳解,@ControllerAdvice,是Spring3.2提供的新注解,它是一個(gè)Controller增強(qiáng)器,可對controller中被 @RequestMapping注解的方法加一些邏輯處理,需要的朋友可以參考下2023-10-10基于Java解決華為機(jī)試實(shí)現(xiàn)密碼截取?
這篇文章主要介紹了基于Java解決華為機(jī)試實(shí)現(xiàn)密碼截取,文章圍繞主題相關(guān)資料展開詳細(xì)內(nèi)容,具有一的參考價(jià)值,需要的小伙伴可以參考一下,希望對你有所幫助2022-02-02EasyExcel工具讀取Excel空數(shù)據(jù)行問題的解決辦法
EasyExcel是阿里巴巴開源的一個(gè)excel處理框架,以使用簡單,節(jié)省內(nèi)存著稱,下面這篇文章主要給大家介紹了關(guān)于EasyExcel工具讀取Excel空數(shù)據(jù)行問題的解決辦法,需要的朋友可以參考下2022-08-08