题记
关于配置文件使用的相关感想:
把可以配置的参数定义在properties文件中可以增加项目的通配性,让项目中的所有xml配置文件中都可以引用对应的属性值。而且我们文件的放置位置可以用一个单独的盘挂载到我们的项目服务器上,这样我们的配置文件在一个环境中就是独一份,而不是每个项目服务器上都有一份,而出现冗余的情况,而且一旦需要修改每个项目服务器都需要改,这样也会增加错误和不一致的几率。这种把配置文件独立出项目包的操作还是比较值得借鉴的,这样我们如果要改相关配置的话,直接修改了之后是不会影响到我们的项目打好的包的,这样就可以修改之后重启一下就OK了而不用重新打包再发布。
方式1:
我们最常用的就是用如下方式,在spring配置文件中增加如下配置
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true" />
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="locations">
<list>
<value>file:///nfs/elec/config/jdbc.properties</value>
</list>
</property>
</bean>
jdbc.properties摘要如下
#############################
jdbc.username=root
jdbc.pwd=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.databaseurl=jdbc:mysql://10.36.211:3306/lts?useUnicode=true&characterEncoding=UTF-8
然后在配置mybatis数据源的时候就可以使用如下的方式进行参数的配置了
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass">
<value>${jdbc.driverClassName}</value>
</property>
<property name="jdbcUrl">
<value>${jdbc.databaseurl}</value>
</property>
<property name="user">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.pwd}</value>
</property>
</bean>
方式2
在spring配置文件中增加如下配置,我们在配置文件和java文件中都可以使用
<util:properties id="systemConfig" location="file:///nfs/elec/config/system.properties" />
上面的这种配置通过查看xmlns:util=http://www.springframework.org/schema/util
发现最终使用的是org.springframework.beans.factory.config.PropertiesFactoryBean
即为注解方式的使用
另外一种写法如下
<bean id="prop" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value> file:///nfs/elec/config/system.properties</value>
</list>
</property>
</bean>
获取值的方式如下,在注解方式的service如下
@Value("#{systemConfig['policyStatisticsService1.path']}")
private String service1;
spring其他配置文件中使用如下
<bean id="requestFactory" class="org.springframework.http.client.SimpleClientHttpRequestFactory">
<property name="readTimeout" value="#{systemConfig['readTimeout']}" />
<property name="connectTimeout" value="#{systemConfig['connectTimeout']}" />
</bean>