Spring的properties配置檔案注入
阿新 • • 發佈:2018-12-21
1. 使用PropertiesFactoryBean
配置檔案
<bean id="config" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations"> <list> <value>classpath:app.properties</value> </list> </property> <property name="fileEncoding" value="UTF-8" /> </bean> <!-- 可以簡寫成 --> <util:properties id="config" location="classpath:app.properties"/>
程式碼
@Value("#{config[host]}")
private String host;
注意
@Value("#{config[host]}")中不能有".",例如server.host,不能正確解析
2. PropertyPlaceholderConfigurer
配置檔案
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <array> <value>classpath:app.properties</value> </array> </property> <property name="fileEncoding" value="UTF-8"></property> </bean> <!-- 可以簡寫成 --> <context:property-placeholder location="classpath:app.properties"/> <context:property-placeholder location="屬性檔案,多個之間逗號分隔" file-encoding="檔案編碼" ignore-resource-not-found="是否忽略找不到的屬性檔案" ignore-unresolvable="是否忽略解析不到的屬性,如果不忽略,找不到將丟擲異常" properties-ref="本地Properties配置" local-override="是否本地覆蓋模式,即如果true,那麼properties-ref的屬性將覆蓋location載入的屬性,否則相反" system-properties-mode="系統屬性模式,預設ENVIRONMENT(表示先找ENVIRONMENT,再找properties-ref/location的),NEVER:表示永遠不用ENVIRONMENT的,OVERRIDE類似於ENVIRONMENT" order="順序" />
程式碼
@Value("${server.host}")
private String host;