springDI構(gòu)造方法、set方法先后順序和命名空間

構(gòu)造方法和set方法的執(zhí)行順序

  1. 配置文件配置如下:
    <bean id="computer" class="domain.Computer"></bean>

    <bean id="room" class="domain.Room">
        <property name="name" value="001"></property>
        <constructor-arg name="name" value="guanyu"></constructor-arg>
        <constructor-arg name="computer" ref="computer"></constructor-arg>
    </bean>

2.實(shí)體類:

public class Room {

    private String name;
    private Computer computer; //類與類關(guān)系 has a

    public Room(String name, Computer computer) {
        this.name = name;
        this.computer = computer;
    }

    public String getName() {
        return name;
    }

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

    public Computer getComputer() {
        return computer;
    }

    public void setComputer(Computer computer) {
        this.computer = computer;
    }


    @Override
    public String toString() {
        return "Room{" +
                "name='" + name + '\'' +
                ", computer=" + computer +
                '}';
    }
}

3.測(cè)試代碼

        Room room = (Room) factory1.getBean("room");
        System.out.println(room);

4.運(yùn)行結(jié)果,展示的是set方法中的值

Room{name='001', computer=Computer{brand='null', name='null', price=null}}

5.原理:因?yàn)闃?gòu)造方法先執(zhí)行,構(gòu)造方法將值賦值為guanyu后,set方法又再次給name屬性賦值一次,將guanyu改為001

命名空間

  • 本質(zhì)上就是配置文件的一種簡(jiǎn)寫
  • property p:
  • constructor-arg c:
    舉例:原來(lái)寫法
<bean id="room" class="domain.Room">
      <property name="name" value="001"></property>
 </bean>

簡(jiǎn)寫

<bean p:name="001"></bean>

1.配置文件中的頭部配置文件需要配置
xmlns:c="http://www.springframework.org/schema/c"

原來(lái)寫法
    <bean id="room" class="domain.Room">
        <constructor-arg name="name" value="guanyu"></constructor-arg>
        <constructor-arg name="computer" ref="computer"></constructor-arg>
    </bean>
簡(jiǎn)寫
    <bean id="room" class="domain.Room" c:name="guanyu" c:computer-ref="computer">

    </bean>

3.測(cè)試代碼

        Room room = (Room) factory1.getBean("room");
        System.out.println(room);

4.運(yùn)行結(jié)果,展示的是set方法中的值

Room{name='guanyu', computer=Computer{brand='null', name='null', price=null}}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容