構(gòu)造方法和set方法的執(zhí)行順序
- 配置文件配置如下:
<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}}