spring之一读取配置文件属性
来源:互联网 发布:Excel图表突出数据 编辑:程序博客网 时间:2024/06/05 09:07
前言
在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成比如jdbc连接信息,邮件服务器信息,接口地址及版本信息等等。但读取*.properties文件有N多种方式,本文根据我工作中用到的读取properties配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。
设置配置文件
例如jdbc连接信息:
mariadb.config.url=jdbc:mariadb://192.168.216.129:3306/config?useUnicode=true?characterEncoding=utf-8mariadb.config.username=rootmariadb.config.password=root@mariadbmariadb.config.driverClass=org.mariadb.jdbc.Drivermariadb.config.env=devmariadb.config.override=truemariadb.config.appId=spring_config
spring启动加载配置文件
配置文件位置 src\main\resources\properties\config.properties
方式一
加载方式
<!--读取配置文件:方法一 --><!-- <context:property-placeholder location="属性文件,多个之间逗号分隔" file-encoding="文件编码" ignore-resource-not-found="是否忽略找不到的属性文件" ignore-unresolvable="是否忽略解析不到的属性,如果不忽略,找不到将抛出异常" properties-ref="本地Properties配置" local-override="是否本地覆盖模式,即如果true,那么properties-ref的属性将覆盖location加载的属性,否则相反" system-properties-mode="系统属性模式,默认ENVIRONMENT(表示先找ENVIRONMENT,再找properties-ref/location的),NEVER:表示永远不用ENVIRONMENT的,OVERRIDE类似于ENVIRONMENT" order="顺序" />--><context:property-placeholder location="classpath:/properties/jdbc.properties" file-encoding="utf-8" ignore-unresolvable="true"/>
应用方式
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${driver}"/> <property name="jdbcUrl" value="${url}"/> <property name="user" value="${username}"/> <property name="password" value="${password}"/> <!-- c3p0 私有配置 --> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="10"/> <!-- 关闭连接不自动提交 --> <property name="autoCommitOnClose" value="false"/> <!--获取连接超时时间--> <property name="checkoutTimeout" value="1000"/> <!--当获取连接失败,重试次数--> <property name="acquireIncrement" value="2"/></bean>
代码应用方式
@Componentpublic class ConfigBean2 { @Value("${my.email}") private String email; @Value("${my.qq}") private Integer qq ; public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Integer getQq() { return qq; } public void setQq(Integer qq) { this.qq = qq; } @PostConstruct public void init(){ System.out.println("ConfigBean2======================"+email+qq) ; }}
方式二
配置方式
<!--java中获取配置文件属性 配套使用 ConfigBean.java--><bean id="config" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations"> <array> <value>classpath:/properties/config.properties</value> </array> </property></bean>
使用方式
@Componentpublic class ConfigBean { @Value("#{config.name}") private String name ; @Value("#{config.age}") private Integer age ; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @PostConstruct public void init(){ System.out.println("ConfigBean======================"+name+age) ; }}
代码应用
@Autowiredprivate ConfigBean configBean ;
方式三
只提供一种思路。
随着项目越来越大,有些配置项越来越多,管理起来很不方便,这时候将配置文件放置再数据库就是一种很好的解决办法。当服务启动时去数据库读取加载在内存中,供服务运行期间使用。而项目只放数据库连接信息。
实现大致思路。
配置文件配置数据库信息
mariadb.config.url=jdbc:mariadb://192.168.216.129:3306/config?useUnicode=true?characterEncoding=utf-8mariadb.config.username=rootmariadb.config.password=root@mariadbmariadb.config.driverClass=org.mariadb.jdbc.Drivermariadb.config.env=devmariadb.config.override=truemariadb.config.appId=spring_config
- #### spring配置文件配置如下
<bean id="propertyConfigurer" class="com.hsy.java.util.jdbc.PropertyConfig"> <property name="locations"> <list> <value>classpath*:/properties/config.properties</value> </list> </property> <!-- 是否加载插件。当为false或者没有配置configList都视为不加载插件读取配置--> <property name="loadPlugin" value="true" /> <property name="configList"> <list> <ref bean="jdbcConfigHelper"/> </list> </property> <property name="ignoreUnresolvablePlaceholders" value="true" /> <property name="ignoreResourceNotFound" value="true"/> <property name="fileEncoding" value="utf-8"/></bean><bean id="jdbcConfigHelper" class="com.hsy.java.util.jdbc.JdbcConfigHelper"> <!-- 排除的key,这些key自己加载 --> <property name="excludeKeys"> <set> <value>name</value> <value>age</value> </set> </property></bean>
代码实现暂不赘述
有需要代码的可以去我的github上去clone
github源码地址
阅读全文
0 0
- spring之一读取配置文件属性
- 解决Spring配置文件无法读取properties属性问题
- Spring配置文件中读取properties文件的属性
- spring boot 读取配置文件(application.yml)中的属性值
- spring提供读取配置文件中的属性注解@Value
- spring的xml配置文件读取properties文件中的属性
- spring boot默认配置文件application.properties的属性读取
- spring boot 添加自定义配置文件并读取属性
- spring boot 读取配置文件(application.yml)中的属性值
- spring boot 读取配置文件(application.yml)中的属性值
- spring boot 读取配置文件(application.yml)中的属性值
- spring boot 读取配置文件(application.yml)中的属性值
- spring boot 读取配置文件(application.yml)中的属性值
- spring boot 读取配置文件(application.yml)中的属性值
- 读取操作属性配置文件
- java读取配置文件属性
- 读取属性配置文件
- JAVA 读取属性配置文件
- Spring 之AOP 使用@AspectJ注解方式
- Hadoop完全分布式安装Flume
- oracle数据库相同id去重
- Laravel入门教程(二)C
- ubuntu和arm开发板设置静态ip
- spring之一读取配置文件属性
- build
- RecyclerView的瀑布流
- Target runtime Apache Tomcat v7.0 is not defined
- html中一些方法
- wpf的样式与资源
- Ascii GB2312 GBK unicode UTF-8 来由和区别
- 使用Genymotion运行项目的时候出现Genymotion device supports x86, but APK only supports armeabi-v7a解决方案
- WINDOWS特殊系统路径获取方法