Java代码中获取配置文件(config.properties)中内容的两种方法
方法千千万,本人暂时只总结了两种方法。
(1)config.properties中的内容如图
在applicationContext.xml中配置
<!-- 引入配置文件 --> <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations"> <list> <value>classpath:config.properties</value> </list> </property> </bean>
在Controller层中使用springMVC的@Value注解获得配置文件的内容:
@Value("#{configProperties['local']}") private String localAddress;
在代码中写localAddress即可得到配置文件中local的值。
(2)在applicationContext.xml中配置
<!-- 引入配置文件 --> <bean id="configPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="order" value="2" /> <property name="ignoreUnresolvablePlaceholders" value="true" /> <property name="locations"> <list> <value>classpath:config.properties</value> </list> </property> </bean> <!--配置全局变量--> <bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="singleton" value="true"/> <property name="properties"> <props> <prop key="csdn.url">${csdn.url}</prop> </props> </property> </bean>
在需要用到的类中注入Properties,注意参数必须和配置全局变量的id相同
@Autowired protected Properties properties;
然后在类中可以通过properties.getProperty("csdn.url")获取配置文件中csdn.url的内容
当然,两种获取参数的方法也可以同时使用,需要在applicationContext.xml中配置
<!-- 引入配置文件 --> <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations"> <list> <value>classpath:config.properties</value> </list> </property> </bean> <bean id="configPropertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"> <property name="order" value="2" /> <property name="ignoreUnresolvablePlaceholders" value="true" /> <property name="properties" ref="configProperties"/> </bean> <!--配置全局变量--> <bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="singleton" value="true"/> <property name="properties"> <props> <prop key="csdn.url">${csdn.url}</prop> </props> </property> </bean>