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 你都可以自己去看 里面可以配的东西多了去了

然后 我们运行项目

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

相关推荐
寻kiki16 分钟前
python test transpose hstack vstack...
后端
shengjk121 分钟前
搞不懂去中心化、主从架构和 HA?1 分钟理清关系,再也不怕被问架构设计
后端
PFinal社区_南丞30 分钟前
开源开发者必备-toilet终端ASCII艺术字工具
后端
我不是混子32 分钟前
Springboot整合Druid
后端
aiopencode1 小时前
API时代的调试革命,为什么未来的开发者都离不开Charles
后端
DBLens数据库管理和开发工具1 小时前
MySQL回表机制详解:一次查询背后的多次磁盘I/O
后端
用户68545375977691 小时前
⚔️ ReentrantLock大战synchronized:谁是锁界王者?
后端
Cache技术分享1 小时前
217. Java 函数式编程风格 - 从命令式到函数式:基于条件选择元素
前端·后端
用户68545375977691 小时前
CopyOnWriteArrayList:写时复制的艺术🎨
后端
用户68545375977691 小时前
线程安全过期缓存:手写Guava Cache🗄️
后端