Latihan - Membuat aplikasi Spring Boot yang menggunakan Spring Data Redis

Selesai

Di unit ini, Anda membuat aplikasi Spring Boot yang menggunakan Spring Data Redis untuk menyimpan dan mengambil data dari Azure Cache for Redis. Anda dapat membuat aplikasi, kecuali untuk koneksi akhir ke Azure Cache for Redis, sambil menunggu instans Azure Cache for Redis Anda selesai disebarkan.

Membuat proyek Spring Boot

Untuk membuat proyek Spring Boot Anda, jalankan baris perintah Spring Initializr berikut:

curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=web,data-redis -d baseDir=spring-redis-application -d bootVersion=2.4.1.RELEASE -d javaVersion=1.8 | tar -xzvf -

Catatan

Perintah menggunakan Spring Web komponen dan Spring Data Redis . Spring Data Redismenggunakan driver Lettuce Redis, yang juga dapat Anda gunakan untuk tugas yang lebih canggih.

Menambahkan kode Spring untuk mengelola data

  1. Di proyek Spring Boot Anda, di samping kelas DemoApplication , tambahkan objek domain Todo sebagai berikut:

    package com.example.demo;
    
    import org.springframework.data.annotation.Id;
    import org.springframework.data.redis.core.RedisHash;
    
    import java.io.Serializable;
    
    @RedisHash("Todo")
    public class Todo implements Serializable {
    
        public Todo() {
        }
    
        public Todo(String description, String details, boolean done) {
            this.description = description;
            this.details = details;
            this.done = done;
        }
    
        @Id
        private Long id;
    
        private String description;
    
        private String details;
    
        private boolean done;
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getDescription() {
            return description;
        }
    
        public void setDescription(String description) {
            this.description = description;
        }
    
        public String getDetails() {
            return details;
        }
    
        public void setDetails(String details) {
            this.details = details;
        }
    
        public boolean isDone() {
            return done;
        }
    
        public void setDone(boolean done) {
            this.done = done;
        }
    }
    
  2. Buat repositori Spring Data Redis yang disebut TodoRepository untuk mengelola koleksi ini, sebagai berikut:

    package com.example.demo;
    
    import org.springframework.data.repository.CrudRepository;
    import org.springframework.stereotype.Repository;
    
    @Repository
    public interface TodoRepository extends CrudRepository<Todo, String> {
    
    }
    
  3. Tambahkan pengontrol Spring MVC yang disebut TodoController, sebagai berikut:

     package com.example.demo;
    
    import org.springframework.http.HttpStatus;
    import org.springframework.web.bind.annotation.*;
    
    @RestController
    @RequestMapping("/")
    public class TodoController {
    
        private final TodoRepository todoRepository;
    
        public TodoController(TodoRepository todoRepository) {
            this.todoRepository = todoRepository;
        }
    
        @PostMapping("/")
        @ResponseStatus(HttpStatus.CREATED)
        public Todo createTodo(@RequestBody Todo todo) {
            return todoRepository.save(todo);
        }
    
        @GetMapping("/")
        public Iterable<Todo> findAllTodos() {
            return todoRepository.findAll();
        }
    }
    

Mendapatkan kunci keamanan Azure Cache for Redis

  1. Jalankan perintah berikut untuk memeriksa apakah instans Azure Cache for Redis Anda siap digunakan.

    az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP
    

    Perintah mengembalikan data JSON yang berisi provisioningState atribut. Ketika provisioningState memiliki nilai Succeeded, instans Azure Cache for Redis Anda tersedia sepenuhnya.

    Tip

    Jika Anda memiliki utilitas jq , Anda dapat menggunakan baris perintah tunggal berikut untuk memeriksa kesiapan:

    az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP | jq '.provisioningState'
    
  2. Saat instans Azure Cache for Redis siap, jalankan perintah berikut untuk mengambil kunci keamanannya:

    az redis list-keys \
        --resource-group $AZ_RESOURCE_GROUP \
        --name $AZ_REDIS_NAME
    

    primaryKey Salin nilai dari output yang akan digunakan di langkah berikutnya.

Mengonfigurasi Spring Boot untuk terhubung ke Azure Cache for Redis

Buka file konfigurasi src/main/resources/application.properties di aplikasi Anda dan tambahkan properti berikut. <redisName> Ganti tempat penampung dengan nama instans Redis Anda, dan ganti <redisPrimaryKey> tempat penampung dengan nilai yang primaryKey Anda dapatkan dari langkah sebelumnya.

spring.redis.host=<redisName>.redis.cache.windows.net
spring.redis.password=<redisPrimaryKey>
spring.redis.port=6380
spring.redis.ssl=true

Menguji aplikasi secara lokal

  1. Jalankan aplikasi Spring Boot Anda, baik dengan menjalankan DemoApplication yang dapat dieksekusi di lingkungan pengembangan Anda atau dengan menjalankan plug-in Spring Boot Maven sebagai berikut:

    ./mvnw spring-boot:run
    
  2. Dengan aplikasi berjalan, simpan beberapa data di Redis dengan menggunakan perintah berikut:

    curl -d '{"description":"a description", "details":"some details"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:8080
    
  3. Sekarang ambil data tersebut dari Redis:

    curl http://127.0.0.1:8080
    

Buka unit berikutnya untuk mempelajari cara menggunakan Azure Cache for Redis untuk menyimpan data sesi HTTP melalui Sesi Spring.