比如有properties文件:
SOLACE_VPN=D_JAVA_VPM
SOLACE_CONNECTION_FACTORY=D_JAVA_VPM_CF
SOLACE_OUTPUT_QUEUE_NAME=JAVAHONK_TEST
SOLACE_USERNAME_PUB=JAVAHONK
SOLACE_PASSWORD_PUB=PASS
然后可以使用注解类:
@Component public class PropertyHolder { @Value("${SOLACE_HOST}") private String SOLACE_HOST; @Value("${SOLACE_VPN}") private String SOLACE_VPN; @Value("${SOLACE_CONNECTION_FACTORY}") private String SOLACE_CONNECTION_FACTORY; @Value("${SOLACE_OUTPUT_QUEUE_NAME}") private String SOLACE_OUTPUT_QUEUE_NAME; @Value("${SOLACE_USERNAME_PUB}") private String SOLACE_USERNAME_PUB; @Value("${SOLACE_PASSWORD_PUB}") private String SOLACE_PASSWORD_PUB; public String getSOLACE_HOST() { return SOLACE_HOST; } public void setSOLACE_HOST(String sOLACE_HOST) { SOLACE_HOST = sOLACE_HOST; } public String getSOLACE_VPN() { return SOLACE_VPN; } public void setSOLACE_VPN(String sOLACE_VPN) { SOLACE_VPN = sOLACE_VPN; } public String getSOLACE_CONNECTION_FACTORY() { return SOLACE_CONNECTION_FACTORY; } public void setSOLACE_CONNECTION_FACTORY(String sOLACE_CONNECTION_FACTORY) { SOLACE_CONNECTION_FACTORY = sOLACE_CONNECTION_FACTORY; } public String getSOLACE_OUTPUT_QUEUE_NAME() { return SOLACE_OUTPUT_QUEUE_NAME; } public void setSOLACE_OUTPUT_QUEUE_NAME(String sOLACE_OUTPUT_QUEUE_NAME) { SOLACE_OUTPUT_QUEUE_NAME = sOLACE_OUTPUT_QUEUE_NAME; } public String getSOLACE_USERNAME_PUB() { return SOLACE_USERNAME_PUB; } public void setSOLACE_USERNAME_PUB(String sOLACE_USERNAME_PUB) { SOLACE_USERNAME_PUB = sOLACE_USERNAME_PUB; } public String getSOLACE_PASSWORD_PUB() { return SOLACE_PASSWORD_PUB; } public void setSOLACE_PASSWORD_PUB(String sOLACE_PASSWORD_PUB) { SOLACE_PASSWORD_PUB = sOLACE_PASSWORD_PUB; } }
spring配置文件:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:javahonk-solace.properties</value> </list> </property> <property name="ignoreUnresolvablePlaceholders" value="true"/> </bean> <bean id="propertyHolder" class="com.migration.test.PropertyHolder"></bean> </beans>
使用propertyHolder属性,指定自定义类解析:
然后测试:
ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml"); PropertyHolder propertyHolder = context.getBean(PropertyHolder.class); System.out.println(propertyHolder.getSOLACE_HOST()); System.out.println(propertyHolder.getSOLACE_CONNECTION_FACTORY()); System.out.println(propertyHolder.getSOLACE_OUTPUT_QUEUE_NAME()); ((AbstractApplicationContext) context).close();