spring boot整合cache使用memcached 优化将配置信息放入 application中管理

上文 spring boot整合cache使用memcached

我们简单做了个 spring boot 整合cache 使用 memcached 缓存的案例

但 我们是将地址这类信息 放在了config 目录下的一个 配置类中了

这样 可维护性肯定是很低的

其实 memcached 是有一系列配置的

我们还是正确将 配置信息 写进 application 中

首先 我们在 config 目录下再创建一个类 名字随意 开心就好 我这里取名叫 XMemcachedProperties

参考代码如下

java 复制代码
package com.example.webdom.config;

import org.springframework.stereotype.Component;

@Component

public class XMemcachedProperties {
    //服务地址
    private String servers;
    //连接池数量
    private int poolsize;
    //超时时间
    private long opTimeout;

    public String getServers() {
        return servers;
    }

    public int getPoolsize() {
        return poolsize;
    }

    public long getOpTimeout() {
        return opTimeout;
    }

    public void setServers(String servers) {
        this.servers = servers;
    }

    public void setPoolsize(int poolsize) {
        this.poolsize = poolsize;
    }

    public void setOpTimeout(long opTimeout) {
        this.opTimeout = opTimeout;
    }
}

这里 我们定义了三个属性 然后分别定义了 get set函数 然后 Component 将它写为一个bean

因为只有bean外面才能拿到 然后 get set 方便外面处理它的属性

这三个值 对应 我们 memcached 的 服务器地址 连接池数量 超时时间

然后在application中配置这三个属性

javascript 复制代码
memcached:
  servers: localhost:11211
  poolsize: 10
  opTimeout: 3000

这相当于我们自己自定义的属性 我们后面要去类里读 这个是之前讲过的东西了

这里 我们给 XMemcachedProperties 类加上 ConfigurationProperties prefix值指向 我们 application的memcached属性

然后 我们封装这些属性 是为了给我们之前的 XMemcachedconfig 用的

先将它条件装配进来

getServers 肯定是放到 XMemcachedClientBuilder 中

然后 其他几个属性 我们 memcachedclientBuilder 有非常多的set属性

我们这里要的是 setConnectionPoolSize 连接池数量 setOpTimeout 超时时间

参考代码如下

java 复制代码
package com.example.webdom.config;

import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import net.rubyeye.xmemcached.MemcachedClient;

import java.io.IOException;

@Configuration
public class XMemcachedconfig {

    @Autowired
    private XMemcachedProperties XMemcachedProperties;

    @Bean
    public MemcachedClient getMemcachedclient() throws IOException {
        XMemcachedClientBuilder memcachedclientBuilder = new XMemcachedClientBuilder(XMemcachedProperties.getServers());
        memcachedclientBuilder.setConnectionPoolSize(XMemcachedProperties.getPoolsize());
        memcachedclientBuilder.setOpTimeout(XMemcachedProperties.getOpTimeout());
        MemcachedClient memcachedclient = memcachedclientBuilder.build();
        return memcachedclient;
    }
}

memcachedclientBuilder里面有哪些set 你都可以自己去看 里面可以配的东西多了去了

然后 我们运行项目

对我们运行是没有任何影响的

相关推荐
why1513 小时前
腾讯(QQ浏览器)后端开发
开发语言·后端·golang
浪裡遊3 小时前
跨域问题(Cross-Origin Problem)
linux·前端·vue.js·后端·https·sprint
声声codeGrandMaster3 小时前
django之优化分页功能(利用参数共存及封装来实现)
数据库·后端·python·django
呼Lu噜4 小时前
WPF-遵循MVVM框架创建图表的显示【保姆级】
前端·后端·wpf
bing_1584 小时前
为什么选择 Spring Boot? 它是如何简化单个微服务的创建、配置和部署的?
spring boot·后端·微服务
学c真好玩4 小时前
Django创建的应用目录详细解释以及如何操作数据库自动创建表
后端·python·django
Asthenia04124 小时前
GenericObjectPool——重用你的对象
后端
Piper蛋窝4 小时前
Go 1.18 相比 Go 1.17 有哪些值得注意的改动?
后端
excel4 小时前
招幕技术人员
前端·javascript·后端
盖世英雄酱581365 小时前
什么是MCP
后端·程序员