javascript
spring 属性占位符_Spring属性占位符配置器–一些不太明显的选项
spring 屬性占位符
Spring的PropertySourcesPlaceholderConfigurer用于從XML或Java Config中定義的Spring bean定義外部化屬性。 PlaceholderConfigurer支持的一些選項在文檔中并不明顯,但很有趣,并且可能有用。
首先,以Spring文檔中的示例為例,考慮一個屬性文件,其中包含用于配置數據源的信息:
使用自定義名稱空間配置PropertySourcesPlaceholderConfigurer:
<context:property-placeholder location='database.properties'/>可以通過以下方式使用基于XML的bean定義來定義利用這些屬性的數據源bean:
<bean id='dataSource' destroy-method='close'class='org.apache.commons.dbcp.BasicDataSource'><property name='driverClassName' value='${jdbc.driverClassName}'/><property name='url' value='${jdbc.url}'/><property name='username' value='${jdbc.username}'/><property name='password' value='${jdbc.password}'/> </bean>并以這種方式使用基于Java的配置:
@Value('${jdbc.driverClassName}') private String driverClassName; @Value('${jdbc.url}') private String dbUrl; @Value('${jdbc.username}') private String dbUserName; @Value('${jdbc.password}') private String dbPassword;@Bean public BasicDataSource dataSource() {BasicDataSource dataSource = new BasicDataSource();dataSource.setDriverClassName(driverClassName);dataSource.setUrl(dbUrl);dataSource.setUsername(dbUserName);dataSource.setPassword(dbPassword);return dataSource; }不太明顯的選項是:
首先是對默認值的支持。 例如,如果要為jdbc用戶名默認提供“ sa”,則使用這種方式(使用$ {propertyName:default}語法):
<property name='username' value='${jdbc.username:sa}'/>或使用Java Config:
.. .. @Value('${jdbc.username:sa}') private String dbUserName;@Bean public BasicDataSource dataSource() { .. }其次是對嵌套屬性解析的支持,例如考慮以下屬性:
phase.properties文件–
phase=qa jdbc.username.qa=qasa jdbc.username.dev=devsa并以這種嵌套方式將'phase'屬性用作XML bean定義中另一個屬性的一部分:
<property name='username' value='${jdbc.username.${phase}}'/> 這些選項對于基于占位符的配置可能非常有用。
參考: Spring Property占位符配置器– all和雜物博客中,我們的JCG合作伙伴 Biju Kunjummen提供了一些不太明顯的選擇 。
翻譯自: https://www.javacodegeeks.com/2013/01/spring-property-placeholder-configurer-a-few-not-so-obvious-options.html
spring 屬性占位符
總結
以上是生活随笔為你收集整理的spring 属性占位符_Spring属性占位符配置器–一些不太明显的选项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux覆盖文件的命令(linux 覆
- 下一篇: 安卓软件数据怎么转移到苹果(安卓软件数据