为什么80%的码农都做不了架构师?>>>
1.PropertiesFactoryBean is a FactoryBean implementation which reads a properties file and exposes that as an Properties object in the applicationcontext.
加载配置文件后,可以在代码中通过注解直接使用,如
@Value("#{qfangCoreSameProperties['joinLoginSuccessUrl']}")
private String joinLoginSuccessUrl;
2.PropertyPlaceHolderConfigurer is a BeanFactoryPostProcessor implementation that reads a property file and uses that property file to replace placeholder variables (${somename}) with actual values. The read properties aren’t available as a Properties object.
在配置文件中使用,如
<dubbo:registry address="${dubbo.registry.address}" />
<dubbo:monitor protocol="${dubbo.monitor.protocol}" />
使用 PropertyPlaceholderConfigurer 时, @Value表达式的用法是 @Value(value="${properties key}") ,使用 PropertiesFactoryBean 时,我们还可以用@Value 读取 properties对象的值, @Value 用法 是 @Value(value="#{configProperties['properties key']}")
<bean id="configProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:/config/jdbc.properties</value>
<value>classpath:/config/base.properties</value>
</list>
</property>
</bean>
<!-- 属性文件读入 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties" ref="configProperties" />
</bean>
@Value(value="${profit.rate.csProfitRate}")
double rate = 0.9;
@Value(value="#{configProperties['profit.rate.csProfitRate']}")
double rate2 = 0.9;