springboot 2.1.3.RELEASE版本解析.properties文件配置
1、有时为了管理一些特定的配置文件,会考虑单独放在一个配置文件中,如redis.properties:
#Matser的ip地址
redis.host=192.168.5.234
#端口号
redis.port=6379
#如果有密码
redis.password=root
#客户端超时时间单位是毫秒 默认是2000
redis.timeout=10000
#最大空闲数
redis.maxIdle=300
#连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
#redis.maxActive=600
#控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性
redis.maxTotal=1000
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
redis.maxWaitMillis=1000
#连接的最小空闲时间 默认1800000毫秒(30分钟)
redis.minEvictableIdleTimeMillis=300000
#每次释放连接的最大数目,默认3
redis.numTestsPerEvictionRun=1024
#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
redis.timeBetweenEvictionRunsMillis=30000
#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
redis.testOnBorrow=true
#在空闲时检查有效性, 默认false
redis.testWhileIdle=true
对于springboot框架来说,可以使用加入相关注解将配置文件解析成对应的对象,方便在代码中使用
package com.example.springbootredis.config; import lombok.Data; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.Protocol; @Configuration //redis前缀 @ConfigurationProperties(prefix = "redis") //配置文件内容 @PropertySource("classpath:/config/redis.properties") @Data public class RedisConfig { private Logger logger = LoggerFactory.getLogger(RedisConfig.class); /** * Matser的ip地址 */ private String host; /** * 端口号 */ private Integer port; /** * 密码 */ private String password; /** * 客户端连接超时时间,单位毫秒,默认是2000 */ private Integer timeout; /** * 最大空闲数 */ private Integer maxIdle; /** * 控制一个pool可分配多少个jedis实例,如果是jedis 2.4以后用该属性,2.4之前用的redis.maxActive */ private Long maxTotal; /** * 最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 */ private Long maxWaitMillis; /** * 连接的最小空闲时间 默认1800000毫秒(30分钟) */ private Long minEvictableIdleTimeMillis; /** * 每次释放连接的最大数目,默认3 */ private Long numTestsPerEvictionRun; /** * 逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1 */ private Long timeBetweenEvictionRunsMillis; /** * 是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个 */ private Boolean testOnBorrow; /** * 在空闲时检查有效性, 默认false */ private boolean testWhileIdle; @Override public String toString() { return String.format("RedisConfig[host=%s,port=%s,password=%s,timeout=%s]", host, port, password, timeout); } }
这里主要使用了@Configuration,@ConfigurationProperties(prefix = "redis"),@PropertySource("classpath:/config/redis.properties")三个注解,springboot以前的版本是使用
@Configuration,@ConfigurationProperties(prefix = "redis",locations="classpath:/config/redis.properties")
2、对于一些简单的配置属性可以放在application文件中,在代码中使用@Value注解来获取,如
@Value("${spring.redis.host}") String host