• 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
  • 相关阅读:
    css中导入样式表和链接样式表有什么区别
    URL加随机数的作用
    asp.net 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
    解决浏览器的缓存Ajax取不到最新的数据的为问题
    The connection to adb is down, and a severe error has occured.
    站着办公有助减轻体重
    AndroidManifest.xml文件综合详解
    asp.net C# 全站防注入 利用Global.asax(转)
    Android Unable to resolve target 'androidX'
    Android预定义样式
  • 原文地址:https://www.cnblogs.com/kingsonfu/p/10405869.html
Copyright © 2020-2023  润新知