首頁技術文章正文

Spring的xml標簽配置:默認標簽和自定義標簽

更新時間:2022-10-27 來源:黑馬程序員 瀏覽量:

Spring 的 xml 標簽大體上分為兩類,一種是默認標簽,一種是自定義標簽。默認標簽不用額外導入其他命名空間約束的標簽,例如 <bean>標簽。自定義標簽需要額外引入其他命名空間約束,并通過前綴引用的標簽,例如<context:propertyplaceholder/>標簽。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

該命名空間約束下的默認標簽如下:

命名空間的默認標簽

<beans>標簽,除了經(jīng)常用的做為根標簽外,還可以嵌套在根標簽內(nèi),使用profile屬性切換開發(fā)環(huán)境。

<!-- 配置測試環(huán)境下,需要加載的Bean實例 -->
<beans profile="test">

</beans>
<!-- 配置開發(fā)環(huán)境下,需要加載的Bean實例 -->
<beans profile="dev">
  
</beans>

指定被激活的環(huán)境可以使用以下兩種方式:

1.使用命令行動態(tài)參數(shù),虛擬機參數(shù)位置加載 -Dspring.profiles.active=test

2.使用代碼的方式設置環(huán)境變量 System.setProperty("spring.profiles.active","test")

<import>標簽,用于導入其他配置文件,項目變大后,就會導致一個配置文件內(nèi)容過多,可以將一個配置文件根 據(jù)業(yè)務某塊進行拆分,拆分后,最終通過<import>標簽導入到一個主配置文件中,項目加載主配置文件就連同<import>導入的文件一并加載了。

<!--導入用戶模塊配置文件-->
<import resource="classpath:UserModuleApplicationContext.xml"/>

<!--導入商品模塊配置文件-->
<import resource="classpath:ProductModuleApplicationContext.xml"/>

<alias>標簽是為某個Bean添加別名,與在標簽上使用name屬性添加別名的方式一樣,我們?yōu)閁serServiceImpl指定四個別名:aaa、bbb、xxx、yyy。

<!--配置UserService-->
<bean id="userService" name="aaa,bbb" class="com.itheima.service.impl.UserServiceImpl">
    <property name="userDao" ref="userDao"/>
</bean>
<!--指定別名-->
<alias name="userService" alias="xxx"/>
<alias name="userService" alias="yyy"/>

斷點調試,在beanFactory中維護著一個名為aliasMap的Map<String,String>集合,存儲別名和beanName 之間的映射關系。
1666838887026_82.png

Spring的自定義標簽需要引入外部的命名空間,并為外部的命名空間指定前綴,使用 <前綴:標簽> 形式的標簽,稱 之為自定義標簽,自定義標簽的解析流程也是 Spring xml擴展點方式之一。

<!--默認標簽-->
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>
<!--自定義標簽-->
<context:property-placeholder/>
<mvc:annotation-driven/>
<dubbo:application name="application"/>






分享到:
在線咨詢 我要報名
和我們在線交談!