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

猜你喜欢

转载自www.cnblogs.com/kingsonfu/p/10405869.html