Spring-Data-Redis For Spring Boot

2193 ワード

前回は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 2次インデックスである.
repository:
@NoRepositoryBean
interface UserJpaRepository : PagingAndSortingRepository

ここでは、サブクラスJpaRepositoryではなくPagingAndSortingRepositoryを継承します.
impl:
class UserJpaRepositoryImpl(metadata: EntityInformation, operations: KeyValueOperations) :
        SimpleKeyValueRepository(metadata, operations), UserJpaRepository

 personRepository:
interface PersonRepository : UserJpaRepository

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) {
    runApplication(*args)
}

前回の手順を繰り返して、data jpaを使うことに慣れているのは親切で、ここ数回のテストでデータがredisに完全に格納されていることがわかり、GET方式のアクセスはすべて正常に戻ったが、具体的にはデータベースの可視化時に文字化けが発生し、私のような軽微な強迫症には耐えられない.次に、Key(String)-Value(Object)のシーケンス化の問題、特にストレージObject(NOT STRING)について深く学ぶ必要がある.