项目中有用到redis多数据源的情况,因此准备写一下。很遗憾,没有第三方现成的多数据源starter,自己准备试着写一个,在完成前,先用Java配置实现。
首先创建一个项目:
引入了web和redis两个组件。
启动类不用做任何修改,看一下配置文件:
只做了简单的多数据源配置,redis自动配置的数据源没有使用。简单的配置就做好了,接下来看redis多数据源配置类。
现在使用的是1.5.x版本的springboot,底层使用的是Jedis连接redis,原生的jedis很简单,用参数创建对象后就可以对redis进行操作:
运行结果:
springboot中最经常使用的是StringRedisTemplate进行redis操作,StringRedisTemplate的创建也很简单,在对象中初始化一个连接池JedisConnectionFactory就可以了。连接池的创建很简单:
如果有需要,还可以初始化一些池数据:
连接池的其它属性设置可以自行查询学习。
最后再加一个调用:
这个方法将在所有的属性被初始化后调用。但是会在init前调用。但是如果是延迟加载的话,则马上执行。
注意!如果调用这个方法会出现空指针!
最后将连接池设置到 StringRedisTemplate 中,就可以了
但是这样直接在main方法中运行会报错,把上面所有的内容配置到Java的配置类中:
这样多数据源就配置好了,因为用的名字区分,所以注入使用的时候要使用名字注入:
启动执行两个接口:
在数据库中添加也成功:
代码地址: https://gitee.com/blueses/spring-boot-demo











网友评论