深圳有做网站的公司,wordpress导航栏不见了,动漫做暧视频网站,安卓app软件公司文章目录 逻辑实现POM.xmlRedissionConfigRedissionPropertiesRedissionUtilsspring.factories 功能测试application.yml配置POM.xmlTestController运行测试 本章内容主要介绍如何通过封装相关的redission连接配置和工具类#xff0c;最终完成一个通用的redission starter。并… 文章目录 逻辑实现POM.xmlRedissionConfigRedissionPropertiesRedissionUtilsspring.factories 功能测试application.yml配置POM.xmlTestController运行测试 本章内容主要介绍如何通过封装相关的redission连接配置和工具类最终完成一个通用的redission starter。并且本文还会进行对封装的starter进行引入测试最终实现想要的效果。 参考文章
SpringBoot日常自定义实现SpringBoot Starter 逻辑实现
下面直接进入主题介绍整体用到的文件和逻辑内容。首先需要创建一个maven项目这一步省略
POM.xml
在pom配置文件中引入自动加载和redssion的依赖
dependenciesdependencygroupIdorg.redisson/groupIdartifactIdredisson-spring-boot-starter/artifactIdversion3.17.7/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependency
/dependenciesRedissionConfig
创建一个RedissionConfig的配置连接类主要是加载相关的redis配置并进行连接
Configuration
ConditionalOnClass(Redisson.class)
EnableConfigurationProperties({RedissionProperties.class})
public class RedissionConfig {BeanRedissonClient redissonClient(RedissionProperties redissionProperties) {Config config new Config();String prefix redis://;if (redissionProperties.isSsl()) {//加密prefix rediss://;}config.useSingleServer().setAddress(prefixredissionProperties.getHost(): redissionProperties.getPort()).setConnectTimeout(redissionProperties.getTimeOut()).setPassword(redissionProperties.getPassword());return Redisson.create(config);}
}RedissionProperties
创建一个RedissionProperties的配置类主要包括一些redis相关的连接配置
ConfigurationProperties(prefixxxx.redission)
public class RedissionProperties {/*** 连接地址*/private String host;/*** 连接端口号*/private int port;/*** 认证密码*/private String password;/*** 超时时间 默认0*/private int timeOut;public String getHost() {return host;}public void setHost(String host) {this.host host;}public int getPort() {return port;}public void setPort(int port) {this.port port;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public int getTimeOut() {return timeOut;}public void setTimeOut(int timeOut) {this.timeOut timeOut;}public boolean isSsl() {return isSsl;}public void setSsl(boolean ssl) {isSsl ssl;}/*** 是否加密 默认不加密 false*/private boolean isSsl;
}RedissionUtils
创建一个RedissionUtils的工具操作类该工具类可以方便外部进行数据操作本工具类并不完善只有字符串的操作和锁操作如需其他数据类型的操作请自行补充
Component
public final class RedissionUtils {Autowiredprivate RedissonClient redissonClient;private static final long DEFAULT_GETLOCK_TIMEOUT 5;public void set(String key, String vul) {redissonClient.getBucket(key).set(vul);}public Object get(String key) {return redissonClient.getBucket(key).get();}public String getString(String key) {RBucketString bucket redissonClient.getBucket(key);return bucket.get();}public T void setAndExpire(String key, T value, long expiredTime) {RBucketT bucket redissonClient.getBucket(key);bucket.set(value, expiredTime, TimeUnit.SECONDS);}/*** 获取锁* param lockKey* return*/public boolean getLock(String lockKey) {RLock rLock redissonClient.getLock(lockKey);try {boolean res rLock.tryLock(DEFAULT_GETLOCK_TIMEOUT, TimeUnit.SECONDS);return res;} catch (Exception e) {e.printStackTrace();} finally {//无论如何, 最后都要解锁rLock.unlock();}return false;}/**** param lockKey 锁的key* param timeOut 获取锁的超时时间* return*/public boolean getLock(String lockKey, long timeOut) {RLock rLock redissonClient.getLock(lockKey);try {boolean res rLock.tryLock(timeOut, TimeUnit.SECONDS);return res;} catch (Exception e) {e.printStackTrace();} finally {//无论如何, 最后都要解锁rLock.unlock();}return false;}}spring.factories
在resource/META-INF下需要创建一个自动装载配置文件spring.factories 里面的内容如下主要填写配置类和工具类的路径
org.springframework.boot.autoconfigure.EnableAutoConfiguration\cn.cys.starter.redission.config.RedissionConfig,\cn.cys.starter.redission.utils.RedissionUtils功能测试
完成逻辑实现以后需要对上面的maven项目进行打包再放入maven仓库(本地操作其实就是mvn install) 接着再创建一个maven项目将redission starter引入然后进行测试。具体的使用如下
application.yml配置
在application.yml填写相应的配置信息
xxx:redission:host: 192.168.110.110port: 6379password: CR2wwqqsqsctimeOut: 5isSsl: falsePOM.xml
pom文件引入redssion starter包
dependencygroupIdcn.cys.easy.boot/groupIdartifactIdeasy-redission-boot-starter/artifactIdversion1.0.0_base/version
/dependencyTestController
本文直接在controller进行引入操作测试
RestController
public class TestController {Autowiredprivate RedissionUtils redissonUtils;GetMapping(/test)public void test() {redissonUtils.set(myname,lisi);System.out.println(redissonUtils.get(myname));System.out.println(redissonUtils.getString(myname));System.out.println(test Redission start);}
}运行测试
启动服务调用接口查看