91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring與bean的關系是什么

發布時間:2021-01-18 15:57:04 來源:億速云 閱讀:283 作者:Leah 欄目:編程語言

這篇文章給大家介紹spring與bean的關系是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、繼承關系

Address.java

package com.gong.spring.beans.autowire;

public class Address {
  private String city;
  private String street;
  
  public String getCity() {
    return city;
  }

  public void setCity(String city) {
    this.city = city;
  }

  public String getStreet() {
    return street;
  }

  public void setStreet(String street) {
    this.street = street;
  }

  @Override
  public String toString() {
    return "Address [city=" + city + ", street=" + street + "]";
  }
}

beans-relation.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:p="http://www.springframework.org/schema/p"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="address" class="com.gong.spring.beans.autowire.Address" 
  p:city="武漢" p:street="絡南街道"></bean>
  <!-- 使用parent指定指定哪個bean的配置,子bean可以覆蓋父bean的配置 -->
  <bean id="address2" class="com.gong.spring.beans.autowire.Address" parent="address" 
  p:street="珞獅街道"></bean>
</beans>

Main.java

package com.gong.spring.beans.autowire;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {
  public static void main(String[] args) {
    //1.創建spring的IOC容器對象
    ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-relation.xml");
    //2.從容器中獲取Bean實例
    Address address = (Address) ctx.getBean("address"); 
    System.out.println(address.toString());
    Address address2 = (Address) ctx.getBean("address2"); 
    System.out.println(address2.toString());
  }
}

輸出:

spring與bean的關系是什么

address2繼承了address的city配置,因此city=武漢。

當然,我們也可以使用abstract來表明一個Bean是一個抽象bean。抽象bean可以作為一個模板,且不能被實例化。同時,如果一個bean沒有聲明class,那么該bean也是一個抽象bean,且必須指定abstract="true"。

<bean id="address" class="com.gong.spring.beans.autowire.Address" abstract="true"
  p:city="武漢" p:street="絡南街道"></bean>

此時,在進行實例化就會報錯

Address address = (Address) ctx.getBean("address");

spring與bean的關系是什么

將抽象bean作為父bean,可以實例化它的子bean:

  Address address2 = (Address) ctx.getBean("address2"); 
  System.out.println(address2.toString());

spring與bean的關系是什么

二、依賴關系

Car.java

package com.gong.spring.beans.autowire;

public class Car {
  
  public Car() {
  }

  public Car(String name) {
    this.name = name;
  }
  private String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  @Override
  public String toString() {
    return "Car [name=" + name + "]";
  }
  
}

Student.java

package com.gong.spring.beans.autowire;
import java.util.List;
import java.util.Map;

public class Student {
  
  private String name;
  private int age;
  private double score;
  private Car car;
  private Address address;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
  public double getScore() {
    return score;
  }
  public void setScore(double score) {
    this.score = score;
  }
  public Car getCar() {
    return car;
  }
  public void setCar(Car car) {
    this.car = car;
  }
  public Address getAddress() {
    return address;
  }
  public void setAddress(Address address) {
    this.address = address;
  }
  @Override
  public String toString() {
    return "Student [name=" + name + ", age=" + age + ", score=" + score + ", car=" + car + ", address=" + address
        + "]";
  }
  
  
}

beans-relation.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:p="http://www.springframework.org/schema/p"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  
  <bean id="car" class="com.gong.spring.beans.autowire.Car" p:name="baoma"></bean>
  <bean id="address" class="com.gong.spring.beans.autowire.Address" 
  p:city="武漢" p:street="絡南街道"></bean>
  <!-- 要求配置Student時,要依賴于Car-->
  <bean id="student" class="com.gong.spring.beans.autowire.Student" p:name="tom"
  p:age="12" p:score="99.00" autowire="byName" depends-on="car"></bean>
</beans>

spring允許用戶通過depends-on屬性設定bean前置依賴bean,前置依賴bean會在本Bean實例化之前就創建好。如果前置依賴于多個Bean,則可以通過逗號,空格的方式來配置bean的名稱。

Main.java

package com.gong.spring.beans.autowire;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {
  public static void main(String[] args) {
    //1.創建spring的IOC容器對象
    ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-relation.xml");
    //2.從容器中獲取Bean實例
    Student student = (Student) ctx.getBean("student"); 
    System.out.println(student.toString());
  }
}

輸出:

spring與bean的關系是什么

關于spring與bean的關系是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高要市| 寿宁县| 安远县| 永安市| 耿马| 新安县| 镇宁| 宣武区| 双城市| 永安市| 界首市| 阿拉善左旗| 屏东市| 玛纳斯县| 裕民县| 洛浦县| 桑植县| 吉安县| 襄汾县| 广南县| 巴东县| 准格尔旗| 辛集市| 惠州市| 哈巴河县| 德安县| 福海县| 方正县| 云南省| 榆树市| 永新县| 南丹县| 旺苍县| 石渠县| 理塘县| 甘肃省| 海林市| 浦江县| 大连市| 哈尔滨市| 庐江县|