use*_*506 6 java spring properties
我的问题看起来很简单,但我无法解决它.我有一个属性文件,其中包含所有环境(dev,qa,prod)的配置详细信息.
示例config.properties:
dev.maxLength=2000
qa.maxLength=4000
Run Code Online (Sandbox Code Playgroud)
我们有一个父属性文件,它包含主机名,环境映射.
示例hosts.properties:
host1=dev
host2=qa
Run Code Online (Sandbox Code Playgroud)
属性名称host1存储在bean中hostname.
<bean id="hostname"
factory-bean="localhostInetAddress"
factory-method="getHostName"/>
Run Code Online (Sandbox Code Playgroud)
要解析配置属性名称,我必须按如下方式连接字符串,
${${**hostname**}.maxLength}这应该被解析为${dev.maxLength}
我尝试使用SpEL但没有成功.我得到了Could not resolve placeholder例外.如何在属性占位符中连接bean值?如何构建动态属性名称?
春季版3.2
Gha*_*ost 15
要连接从Spring属性占位符解析的值,您需要使用单个quoutes('')转义它们的值,并使用SpEL 表达式包装占位符表达式#{}.
<bean id="myService" class=""com.services.MyService">
...
<property name="endpointAddress" value="#{'${server}' + ':' + '${port}' + '${endpoint}'}" />
</bean>
Run Code Online (Sandbox Code Playgroud)
哪里:
server = http://domain.host.com
port = 7777
endpoint =/services/myservice
结果将是:
PropertyPlaceholderConfigurer我通过将beans更改为 解决了这个问题Properties。
<util:properties/>可以在 SpEL 中访问。
例子:
"#{prop[host+'.'+'maxLength']}"
host四季豆在哪里。
| 归档时间: |
|
| 查看次数: |
19468 次 |
| 最近记录: |