欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring基于xml文件配置Bean過(guò)程詳解

 更新時(shí)間:2020年01月07日 10:58:40   作者:西西嘛呦  
這篇文章主要介紹了spring基于xml文件配置Bean過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了spring基于xml文件配置Bean過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

通過(guò)全類(lèi)名來(lái)配置:

class:bean的全類(lèi)名,通過(guò)反射的方式在IOC容器中創(chuàng)建Bean,所以要求bean中必須有一個(gè)無(wú)參的構(gòu)造器。

  <bean id="helloWorld" class="com.gong.spring.beans.HelloWorld">
    <property name="name" value="jack"></property>
  </bean>

在springIOC容器讀取Bean配置創(chuàng)建Bean的實(shí)例之前,需要對(duì)容器進(jìn)行實(shí)例化。spring提供了兩種類(lèi)型的IOC容器實(shí)現(xiàn):

Beanfactory:IOC容器的基本實(shí)現(xiàn)。

ApplicationContext:提供了更多高級(jí)特性,是BeanFactory的子接口。

ApplicationContext主要實(shí)現(xiàn)類(lèi):

  • ClassPathXmlApplicationContext:從類(lèi)路徑加載配置文件。
  • FileSystemXmlApplicationContext:從文件系統(tǒng)中加載配置文件。
  • ConfigureableApplicationContext擴(kuò)展于ApplicationContext,新增兩個(gè)方法refresh()和close(),讓ApplicationContext具有啟動(dòng)、刷新和關(guān)閉上下文的能力。

ApplicaiotnContex在初始化時(shí)就上下文時(shí)就實(shí)例化所有單例的Bean。

WebApplicationContext是專(zhuān)門(mén)用于WEB應(yīng)用的,它允許從相對(duì)于WEB根目錄的路徑中完成初始化工作。

依賴注入的三種方式

(1)屬性注入:通過(guò)setter方法:<property name="name" value="jack"></property>,即在bean中存在setter方法。

(2)構(gòu)造器注入:<constructor-arg value="" index="0" type=""></constructor-arg>,根據(jù)構(gòu)造方法中初始化的參數(shù)進(jìn)行一一設(shè)置,同時(shí),可以根據(jù)參數(shù)的順序index,參數(shù)的類(lèi)型type來(lái)區(qū)分重載的構(gòu)造器。

(3)工廠方法注入(很少使用,不推薦)

<bean id="student" class="com.gong.spring.beans.Student">    //第一種方式注入屬性值
    <constructor-arg value="tom" index="0" type="java.lang.String"></constructor-arg>
    <constructor-arg value="12" index="1" type="int"></constructor-arg>    //第二種方式注入屬性值
    <constructor-arg index="2" type="double">
      <value>99.00</value>
    </constructor-arg>
  </bean>
package com.gong.spring.beans;

public class Student {
  private String name;
  private int age;
  private double score;
  public Student(String name,int age,double score) {
    this.name = name;
    this.age = age;
    this.score = score;
  }
  @Override
  public String toString() {
    return "Student [name=" + name + ", age=" + age + ", score=" + score + "]";
  }
  
}
public static void main(String[] args) {
    //1.創(chuàng)建spring的IOC容器對(duì)象
    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    //2.從容器中獲取Bean實(shí)例
    Student student = (Student) ctx.getBean("student"); 
    System.out.println(student.toString());
  }

輸出:

當(dāng)屬性值有特殊符號(hào)時(shí),要用以下方式:

    <constructor-arg index="0" type="java.lang.String">
      <value><![CDATA[<tom>]]></value>
    </constructor-arg>

用<![CDATA[屬性值]]>。

相關(guān)文章

  • 在Mac下IDEA安裝并使用protobuf方式(Java)

    在Mac下IDEA安裝并使用protobuf方式(Java)

    這篇文章主要介紹了在Mac下IDEA安裝并使用protobuf方式(Java),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Spring事件監(jiān)聽(tīng)器之@EventListener原理分析

    Spring事件監(jiān)聽(tīng)器之@EventListener原理分析

    這篇文章主要介紹了Spring事件監(jiān)聽(tīng)器之@EventListener原理分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • springboot+thymeleaf國(guó)際化之LocaleResolver接口的示例

    springboot+thymeleaf國(guó)際化之LocaleResolver接口的示例

    本篇文章主要介紹了springboot+thymeleaf國(guó)際化之LocaleResolver的示例 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過(guò)程

    SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過(guò)程

    這篇文章主要介紹了SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Java中JDBC連接數(shù)據(jù)庫(kù)詳解

    Java中JDBC連接數(shù)據(jù)庫(kù)詳解

    本文主要介紹了JDBC連接數(shù)據(jù)庫(kù)的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • SpringBoot淺析安全管理之基于數(shù)據(jù)庫(kù)認(rèn)證

    SpringBoot淺析安全管理之基于數(shù)據(jù)庫(kù)認(rèn)證

    在真實(shí)的項(xiàng)目中,用戶的基本信息以及角色等都存儲(chǔ)在數(shù)據(jù)庫(kù)中,因此需要從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)進(jìn)行認(rèn)證和授權(quán)
    2022-08-08
  • mybatis中 if-test 數(shù)字判斷的坑及解決

    mybatis中 if-test 數(shù)字判斷的坑及解決

    這篇文章主要介紹了mybatis中 if-test 數(shù)字判斷的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java實(shí)現(xiàn)發(fā)送郵件功能時(shí)碰到的坑

    Java實(shí)現(xiàn)發(fā)送郵件功能時(shí)碰到的坑

    之前用163郵箱發(fā)郵件時(shí)明明是成功的,但是使用中國(guó)移動(dòng)自己的郵箱時(shí),無(wú)論如何在linux服務(wù)器中都發(fā)送不成功。下面小編給大家說(shuō)下我是怎么解決的,一起看下吧
    2016-06-06
  • Java持久層框架MyBatis簡(jiǎn)單實(shí)例

    Java持久層框架MyBatis簡(jiǎn)單實(shí)例

    MyBatis 本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis 。本文重點(diǎn)給大家介紹Java持久層框架MyBatis簡(jiǎn)單實(shí)例,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧
    2016-07-07
  • 創(chuàng)建并運(yùn)行一個(gè)java線程方法介紹

    創(chuàng)建并運(yùn)行一個(gè)java線程方法介紹

    這篇文章主要介紹了創(chuàng)建并運(yùn)行一個(gè)java線程,涉及線程代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11

最新評(píng)論