springboot 5(整合redis、httpclient)

1.整合redis

@Configuration

@PropertySource(value = "classpath:redis.properties")

public class RedisSpringConfig {

    @Value("${redis.maxTotal}")

    private Integer redisMaxTotal;

    @Value("${redis.node1.host}")

    private String redisNode1Host;

    @Value("${redis.node1.port}")

    private Integer redisNode1Port;

    private JedisPoolConfig jedisPoolConfig() {

        JedisPoolConfigjedisPoolConfig = newJedisPoolConfig();

        jedisPoolConfig.setMaxTotal(redisMaxTotal);

        return jedisPoolConfig;

    }


    @Bean

    public ShardedJedisPool shardedJedisPool() {

        ListjedisShardInfos = newArrayList<JedisShardInfo>();

        jedisShardInfos.add(new JedisShardInfo(redisNode1Host, redisNode1Port));

        return newShardedJedisPool(jedisPoolConfig(), jedisShardInfos);

    }

}

2.整合httpclient

@Configuration

@PropertySource(value = "classpath:httpclient.properties")

public class HttpclientSpringConfig {

    @Value("${http.maxTotal}")

    private Integer httpMaxTotal;

    @Value("${http.defaultMaxPerRoute}")

    private Integer httpDefaultMaxPerRoute;

    @Value("${http.connectTimeout}")

    private Integer httpConnectTimeout;

    @Value("${http.connectionRequestTimeout}")

    private Integer httpConnectionRequestTimeout;

    @Value("${http.socketTimeout}")

    private Integer httpSocketTimeout;

    @Value("${http.staleConnectionCheckEnabled}")

    private Boolean httpStaleConnectionCheckEnabled;

    @Autowired

    privatePoolingHttpClientConnectionManager manager;


    @Bean

    publicPoolingHttpClientConnectionManager poolingHttpClientConnectionManager() {

        PoolingHttpClientConnectionManager  poolingHttpClientConnectionManager = new PoolingHttpClientConnectionManager();

        // 最大连接数

        poolingHttpClientConnectionManager.setMaxTotal(httpMaxTotal);

        // 每个主机的最大并发数

        poolingHttpClientConnectionManager.setDefaultMaxPerRoute(httpDefaultMaxPerRoute);

        return poolingHttpClientConnectionManager;

    }

    // 定期关闭无效连接

    @Bean

    public IdleConnectionEvictor idleConnectionEvictor() {

        return new IdleConnectionEvictor(manager);

    }

    // 定义Httpclient对

    @Bean

    @Scope("prototype")

    public CloseableHttpClient closeableHttpClient() {

        return HttpClients.custom().setConnectionManager(this.manager).build();

    }

    // 请求配置

    @Bean

    public RequestConfig requestConfig(){

        returnRequestConfig.custom().setConnectTimeout(httpConnectTimeout) // 创建连接的最长时间

                .setConnectionRequestTimeout(httpConnectionRequestTimeout) // 从连接池中获取到连接的最长时间

                .setSocketTimeout(httpSocketTimeout) // 数据传输的最长时间

                .setStaleConnectionCheckEnabled(httpStaleConnectionCheckEnabled) // 提交请求前测试连接是否可用

                .build();

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第二章 连接管理 HttpClient有一个对连接初始化和终止,还有在活动连接上I/O操作的完整控制。而连接操作的...
    狂奔的蜗牛_wxc阅读 4,910评论 0 0
  • JAVA面试题 1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域 ...
    JA尐白阅读 4,858评论 1 0
  • spring boot学习笔记 官方地址:https://spring.io/projects 1. 从hello...
    Vchar_Fred阅读 1,683评论 0 1
  • IoC 容器 Bean 的作用域 自定义作用域实现 org.springframework.beans.facto...
    Hsinwong阅读 7,231评论 0 7
  • 9.21刘润商学院日课感悟:运营式产品 生产出来后是开始,还需要更加长久的维护式产品。 很多游戏会在你好久...
    徐猛_Merlin阅读 2,953评论 0 0