Spring配置檔案獲取系統的環境變數

2021-08-08 20:38:07 字數 4685 閱讀 6218

系統:windows系統

在命令列執行:

設定系統環境變數:set env=production

取系統環境變數:echo %env%            回車

production

在spring的xml配置檔案中如何獲取系統環境變數:

這個問題困擾了我兩天,今天下午終於想到了較為合理的辦法:

第一步:寫乙個***

public classenvorimentconfiglistenerimplementsservletcontextlistenerelse if("release".equals(envstr))else if("development".equals(envstr))

} @override

public voidcontextdestroyed(servletcontextevent servletcontextevent) }

第二步:在web.xml中配置***

<

listener>

<

listener-class>com.ywsoftware.oa.envorimentconfiglistener

listener-class>

listener>

第三步:取值

<

context:property-placeholderlocation="classpath:common/*.properties, classpath:#/*.properties"/>

<

beanid="datasource"class="com.alibaba.druid.pool.druiddatasource"destroy-method="close">

<

propertyname="url"value="$"/>

<

propertyname="username"value="$"/>

<

propertyname="password"value="$"/>

<

propertyname="driverclassname"value="$"/>

<

propertyname="filters"value="$"/>

<

propertyname="maxactive"value="$"/>

<

propertyname="initialsize"value="$"/>

<

propertyname="maxwait"value="$"/>

<

propertyname="minidle"value="$"/>

<

propertyname="timebetweenevictionrunsmillis"value="$"/>

<

propertyname="minevictableidletimemillis"value="$"/>

<

propertyname="validationquery"value="$"/>

<

propertyname="testwhileidle"value="$"/>

<

propertyname="testonborrow"value="$"/>

<

propertyname="testonreturn"value="$"/>

<

propertyname="maxopenpreparedstatements"value="$"/>

<

propertyname="removeabandoned"value="$"/>

<

propertyname="removeabandonedtimeout"value="$"/>

<

propertyname="logabandoned"value="$"/>

bean>

解釋一下我的**:

首先注意:這個***要放在載入spring配置檔案的listener或servlet的前面

這個***的作用是在程式啟動的時候,一載入servletcontext時,就去判斷當前系統的環境變數中env的值是什麼

(不同環境裡需要手動配置不同的env的值,目的是在不同環境中執行專案的時候,需要載入不同的配置檔案,

此處就是指不同的資料庫及其配置),然後會根據這個值向jvm系統變數中存值。然後可以在專案中通過

#取到env對應的值。然後就會去找對應的資料夾下面的配置檔案。

出現的問題:
username和password一直取不到,報拒絕訪問資料庫異常。
原因:username和password可能被占用(可是沒有找到)
這裡提供兩種解決方法:

把username和password放在url後面:url=jdbc:mysql:

②把username和password換成username1和password1(這個隨意換,自己別忘就行)
然後問題基本解決。
歡迎討論!!!~~~

spring配置檔案

1 配置檔案的簡化 1 屬性的 property name foo value foovalue value property 簡化為 property name foo value foovalue 2 引用bean property name foo ref bean foobean prope...

spring配置檔案

context annotation config 是用於啟用那些已經在spring容器裡註冊過的bean上面的註解,也就是顯示的向spring註冊 autowiredannotationbeanpostprocessor commonannotationbeanpostprocessor pers...

Spring配置檔案的

關於spring配置一直是乙個讓人頭痛的問題,因此,在這裡對spring的配置進行了乙個詳細的整理,以便於能夠幫助讀者配置spring web.xml配置 context dao.xml檔案配置 context jdbc.xml檔案配置 context service.xml檔案配置 jdbc.pr...