Spring-Data-Redis For Spring Boot

由于最近项目所需捣鼓了下非关系型数据库,今天就简单讲述下这段时间的对redis/mongo等NoSQL总结.我记得两年前做项目用redis做缓存策略时,一大堆要搭建的环境/配置等等.不得不说Spring是个好东西,集成的redis简直是提倡快速开发者的梦中情人啊.闲话少说,必要的依赖:

compile("org.springframework.boot:spring-boot-starter-data-redis")

这货会自动下载对应版本spring-data-redis和jedis客户端,支持您的敏捷开发.当然不想用这玩意,您的版本控制也可以尝试用parent.配置application.yaml文件(注意:Java下应该是.properties文件):

spring:
  redis:
    host: 127.0.0.1
    port: 6379

 测试环境下其余的36000+个都不需要设置了,如果您非要自行google.多说一丢丢...开发实践中集群策略设置主机(以逗号分隔的“主机:端口”对列表进行引导。 # spring.redis.cluster.nodes=)

测试类:

data class User(
        open var id: String = "",
        open var name: String = "",
        open var age: Int = 0,
        open var sex: Gender = Gender.MALE
) : Serializable {
    override fun toString(): String {
        return "User(id='$id', name='$name', age=$age, sex=$sex)"
    }
}

 Repository:

@Repository
class UserRepository {
    @Resource
    lateinit var redisTemplate: RedisTemplate<String, User>
    @Autowired
    lateinit var template: StringRedisTemplate

    fun setKey(key: String, value: User) =
            redisTemplate.opsForValue().set(key, value)
    
    fun getKey(key: String) = redisTemplate.opsForValue().get(key)
}

 注意:这里我注入有两个Template,这些都被spring boot 自动配置就不要较这个真了,有兴趣去查看下源码.redisTemplate必须加@Resource(默认名称装配)而非@Autowired(默认类型装配),spring官方文档 31.1.1 Connecting to Redis 有解释:

If you add your own @Bean of any of the auto-configured types, it replaces the default (except in the case of RedisTemplate, when the exclusion is based on the bean name, redisTemplate, not its type). By default, if commons-pool2 is on the classpath, you get a pooled connection factory.

 否则会抛出NoSuchBeanDefinitionException.

@RestController
class UserController {
    @Autowired
    lateinit var repository: UserRepository

    @RequestMapping("/set")
    fun set(): String {
        repository.setKey("1", User("1", "先生", 22, Gender.MALE))
        return "success"
    }

    @RequestMapping("/get")
    fun get(): User =
            repository.getKey("1")

}

开启Redis-Server.exe(需要本地下载安装并运行redis服务,如需服务自行移步至google)

开启spring boot(run boot)

浏览器访问:http://localhost:8080/set  后再访问:http://localhost:8080/get

至此大功告成,当然这仅仅是敏捷开发先行了解的一小部分,接下来我们会对spring-data-redis做更加深入的探讨,并尝试放开spring boot 自定义需求redis使之更加符合实际需求.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值