Spring-Data-Redis For Spring Boot

上一篇快速了解了结合spring boot 原子操作redis,如果您了解Spring Data Jpa 就知道上述方式比较不友好,不符合敏捷开发的特点.那么今天咱们继续学习单机版redis基于Spring Data Jpa的开发风格.

测试类:

@RedisHash("persons")
data class Person(
        @get:Id
        @javax.persistence.Id
        open var id: String = "",
        @Indexed
        open var name: String = "",
        open var age: Int = 0,
        open var sex: Gender = Gender.MALE
) : Serializable {
    override fun toString(): String {
        return "Person(id='$id', name='$name', age=$age, sex=$sex)"
    }

}

补充: @RedisHash是指定了对象分封map地址的key索引或前缀,@Id存储时默认辅助索引,@Indexed二级索引.

repository:

@NoRepositoryBean
interface UserJpaRepository<T : Serializable> : PagingAndSortingRepository<T, String>

为了方便(实现接口)这里我继承了PagingAndSortingRepository而不是子类JpaRepository.

impl:

class UserJpaRepositoryImpl<T : Serializable>(metadata: EntityInformation<T, String>, operations: KeyValueOperations) :
        SimpleKeyValueRepository<T, String>(metadata, operations), UserJpaRepository<T>

 personRepository:

interface PersonRepository : UserJpaRepository<Person>

controller:

@RequestMapping("person/set")
    fun setPerson(): Person =
            personRepository.save(Person("t2", "先生", 22, Gender.MALE))

    @RequestMapping("person/get")
    fun getPerson(): Person = personRepository.findById("t2").get()

 

启动入口:

@SpringBootApplication
@EnableRedisRepositories(repositoryBaseClass = UserJpaRepositoryImpl::class)
class ApplicationConfiguration

fun main(args: Array<String>) {
    runApplication<ApplicationConfiguration>(*args)
}

 重复上篇所属步骤即可,习惯于使用data jpa来说这种方式是比较亲切的了,在这几次的测试中发现数据被完整的存储到了redis中,GET方式访问一切回显正常,但具体到数据库可视化时出现了乱码,这对于像我这种轻微强迫症的来说简直不可忍受.接下来就需要深入学习,Key(String)-Value(Object)的序列化问题,尤其是存储Object(NOT STRING).

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值