spring的IOC容器Bean管理(基于xml方式)-創(chuàng)新互聯(lián)

  • ==目的:==降低耦合度
  • ==技術(shù):==xml解析、工廠模式、反射
ioc容器的實(shí)現(xiàn)
  • spring框架提供了兩種實(shí)現(xiàn)方式(兩個(gè)接口)
    • BeanFactory接口
      1. ioc容器的基本實(shí)現(xiàn),是spring框架內(nèi)部使用的接口,一般不提供給開(kāi)發(fā)人員使用
      2. 在加載xml配置文件時(shí),不會(huì)創(chuàng)建xml中的bean對(duì)象,在獲取對(duì)象(使用)bean時(shí)才創(chuàng)建對(duì)象
    • ApplicationContext接口
      1. 是BeanFactory的子接口,提供更多更強(qiáng)大的功能,一般由開(kāi)發(fā)人員使用
      2. 在加載xml配置文件時(shí),就創(chuàng)建對(duì)象xml中的bean對(duì)象
  • ApplicationContext接口的兩個(gè)主要實(shí)現(xiàn)類
    • FileSystemXmlApplicationContext類
      從系統(tǒng)中的全路徑去獲取配置文件
    • ClassPathXmlApplicationContext類
      從項(xiàng)目的相對(duì)類路徑(一般從src/路徑開(kāi)始)去獲取配置文件

eg:
  • xml配置文件
 
  • 對(duì)象生成
//1.加載spring配置文件
	//方法1:ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");  
	//方法2:BeanFactory context = new ClassPathXmlApplicationContext("bean.xml");  
	//方法3:ApplicationContext context = new FileSystemXmlApplicationContext("C:\\Users\\HUAWEI\\idea-workspace\\spring5_demo1\\src\\bean.xml");  
	//方法4:
BeanFactory context = new FileSystemXmlApplicationContext("C:\\Users\\HUAWEI\\idea-workspace\\spring5_demo1\\src\\bean.xml");  

//2.獲取配置文件的對(duì)象  
User user = context.getBean("user", User.class);

xml中創(chuàng)建bean對(duì)象
  • 屬性:
    • id:起的別名
    • name:與id 屬性作用相同(區(qū)別:可以輸入特殊符號(hào))
    • class:類的相對(duì)路徑
  • 基于無(wú)參構(gòu)造方法創(chuàng)建對(duì)象
    注意

如果類中沒(méi)有無(wú)參構(gòu)造方法,則無(wú)法創(chuàng)建

創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)成都定制網(wǎng)站方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及OPP膠袋等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
xml中注入屬性
  • DI:依賴注入,注入屬性(是ioc具體實(shí)現(xiàn)的操作)
  • 基于set 方法注入屬性
    注意

如果類中沒(méi)有創(chuàng)建set 方法,則無(wú)法注入

p名稱空間注入,簡(jiǎn)化set 注入

  • 基于有參構(gòu)造方法注入屬性

如果類中沒(méi)有創(chuàng)建有參構(gòu)造方法,則無(wú)法注入


注入空值和特殊符號(hào)
  • null空值
  • 屬性值包含特殊符號(hào)
    1. 進(jìn)行轉(zhuǎn)義字符
    2. 把值寫(xiě)成CDATA格式
注入外部bean對(duì)象(ref)
  • 需求
  1. 有兩個(gè)類一個(gè)Service類和一個(gè)實(shí)現(xiàn)Dao接口DaoImpl類
  2. 需要在Service類的對(duì)象中調(diào)用Dao類向上轉(zhuǎn)型對(duì)象中的方法
  • 前提條件
  1. Service類中有Dao接口對(duì)象的屬性
private UserDao userDao;
  1. 有set方法設(shè)置Dao接口對(duì)象
public void setUserDao(UserDao userDao){this.userDao = userDao;}
  • xml配置
注入內(nèi)部Bean對(duì)象和級(jí)聯(lián)賦值
  • 需求

一個(gè)員工Emp類中的dept(部門(mén))屬性是一個(gè)對(duì)象

  • xml配置
    基于set方法注入屬性
 
  • 級(jí)聯(lián)賦值
    基于set和get方法注入屬性
    • 方法1
- 方法2
注入集合類型屬性

基于set方法注入屬性

  • 數(shù)組類型
Java C++ Python
  • List類型
Java C++ Python
  • Map類型
  • Set類型
Java C++ Python
注入對(duì)象集合類型屬性

基于set方法注入屬性

  • 需求
private Listsourses;
  • xml配置
 
提取集合類型注入屬性

基于set方法

  • List類型(其他集合類型類似)
JavaC++

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁(yè)名稱:spring的IOC容器Bean管理(基于xml方式)-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://muchs.cn/article22/egijc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、ChatGPT、自適應(yīng)網(wǎng)站全網(wǎng)營(yíng)銷推廣虛擬主機(jī)、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)