- 繼承關係:在Spring容器當中允許使用abstract標籤來定義一個父bean,parent標籤來定義一個子bean。子bean將自動繼承父bean的配置信息。
- 依賴關係:Spring允許用戶通過depends-on標籤來設定bean的前置依賴bean,前置依賴的bean會在本bean實例化之前就創建好,來供本bean使用。
- 引用關係:我們不光可以通過ref標籤來引用其他的bean,而且可以通過idref標籤來引用其他bean的名字。他的主要作用是:在Spring容器啓動的時候就可以檢查引用關係的正確性。那麼這樣就可以提前發現配置信息是否存在錯誤。
<bean id=“car1” class=“cn.lovepi.***.Car”
p:brand=“奔馳E300” p:price=“2000” p:color=“黑色”/>
<bean id=“car1” class=“cn.lovepi.***.Car”
p:brand=“奔馳E300” p:price=“2000” p:color=“紅色”/>
<bean id=“abstractCar” class=“cn.lovepi.***.Car”
p:brand=“奔馳E300” p:price=“2000” p:color=“黑色” abstract=“true”/>
<bean id=“car1” p:color=“紅色” parent=“abstractCar” />
<bean id=“car1” p:color=“白色” parent=“abstractCar” />
public class SystemSetting{
public static int SESSION_TIMEOUT = 30;
public static int REFRESH_CYCLE = 60;
}
public class SysInit{
public SysInit() {
SystemSettings.SESSION_TIMEOUT = 10;
SystemSettings.REFRESH_CYCLE = 100; }
}
假設我們的系統需要一個緩存刷新管理器,他需要根據SystemSettings.REFRESH_CYCLE 的值來創建緩存定時刷新任務,那麼請看如下 的代碼:
public class CacheManager {
public CacheManager(){
Timer timer = new Timer();
TimerTask cacheTask = new CacheTask();
timer.schedule(cachetask,0,SystemSettings.REFRESH_CYCLE);
}
}
<bean id=“manager” class=“cn.lovepi.***.CacheManager”depends-on=“sysInit”/>
<bean id=“sysInit” class=“cn.lovepi.***.SysInit” />
<bean id=“car” class=“cn.lovepi.***.Car”/>
<bean id=“boss” class=“cn.lovepi.***.Boss”
p:carId=“car” scope=“prototype” />
2. <idref>配置方法<bean id=“car” class=“cn.lovepi.***.Car”/>
<bean id=“boss” class=“cn.lovepi.***.Boss” >
<property name=“carId”>
<idref bean=“car”/>
</property>
</bean>