Solon v3.0.3

redisson-solon-plugin

</> markdown

此插件,由社区成员(Sorghum)贡献

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>redisson-solon-plugin</artifactId>
</dependency>

1、描述

数据扩展插件,基于 redisson 封装(代码仓库),为 Solon Data 提供了 redis 的操作能力扩展。(v2.3.1 之后支持)

//这个插件,主要是为构建客户端提供小便利。其实也可以不用适配,直接使用。

2、配置示例

配置分格有两种:1,将配置内容独立为一个文件;2,将配置做为主配置的内容(注意 "|" 符号)。具体的配置内容,参考官网内容(https://github.com/redisson/redisson/wiki/Table-of-Content)。

redis.ds1:
  file: "classpath:redisson.yml"

redis.ds2:
  config: |
    singleServerConfig:
      password: "123456"
      address: "redis://localhost:6379"
      database: 0

redisson 有很多 codec ,比如:JacksonCodec、Kryo5Codec 等。需要配置自己需要的编码器。

3、应用示例

v2.8.5 后 RedissonSupplier 标为弃用,由 RedissonClientOriginalSupplier 替代

@Configuration
public class Config {
    @Bean(value = "redisDs1", typed = true)
    public RedissonClient demo1(@Inject("${redis.ds1}") RedissonClientOriginalSupplier supplier) {
        return supplier.get();
    }

    @Bean("redisDs2")
    public RedissonClient demo2(@Inject("${redis.ds2}") RedissonClientOriginalSupplier supplier) {
        return supplier.get();
    }
}

@Component
public class DemoService {
    
    @Inject //@Inject("redisDs1")
    RedissonClient demo1;

    @Inject("redisDs2")
    RedissonClient demo2;
    
}

4、二次应用

可以借用 RedissonClient,再加工别的服务。相当于用一份 redis 配置,做更多的事

@Configuration
public class Config {
    @Bean
    public CacheService demo2(@Inject RedissonClient client) {
        return new RedissonCacheService(client, 30);
    }
}
@Configuration
public class Config {
    @Bean
    public SaTokenDao saTokenDaoInit(RedissonClient redissonClient) {
      return new SaTokenDaoRedissonJackson(redissonClient);
    }
}

4、参考示例

https://gitee.com/noear/solon-examples/tree/main/4.Solon-Data/demo4101-redisson