在使用Spring時,有些情況下,在配置文件中,需要使用變量的方式來配置bean相關屬性信息,比如下面的數據庫的連接使用了${}的方式進行配置,如下所示:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> <!-- 初始化連接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 連接池最大數量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 連接池最大空閑 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 連接池最小空閑 --> <property name="minIdle" value="${minIdle}"></property> <!-- 獲取連接最大等待時間 --> <property name="maxWait" value="${maxWait}"></property> </bean>
那么上面的${}中的變量具體的值是從哪來的???肯定很多小伙伴一開始也跟我一樣有疑問,其實很簡單,具體有兩種方式來進行配置:
方法一:使用bean的注入來引入配置文件:
<!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath*:jdbc.properties" /> </bean>
方法二:spring3提供更簡單的方式,使用自動掃描的方式:
<!-- 配置文件 --> <context:property-placeholder location="classpath*:jdbc.properties" />
以上兩種方式都可以將指定的配置文件加載進來,然后通過${}符號的引用,即可通過外部對變量的修改,來進行切換,不需要每次改動內部的值!
jdbc.properties文件的內容格式也很簡單,是鍵值對的方式,#表示注釋,比如:
driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true username=root password=root #定義初始連接數 initialSize=5 #定義最大連接數 maxActive=20 #定義最大空閑 maxIdle=20 #定義最小空閑 minIdle=1 #定義最長等待時間 maxWait=60000