Alıştırma - Spring Data Redis kullanan bir Spring Boot uygulaması oluşturma

Tamamlandı

Bu ünitede, Redis için Azure Cache verileri depolamak ve almak için Spring Data Redis kullanan bir Spring Boot uygulaması oluşturacaksınız. Redis için Azure Cache örneğinizin dağıtımı tamamlanmasını beklerken Redis için Azure Cache son bağlantı dışında uygulamayı oluşturabilirsiniz.

Spring Boot projesini oluşturma

Spring Boot projenizi oluşturmak için aşağıdaki Spring Initializr komut satırını çalıştırın:

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 -

Dekont

komutu ve Spring Data Redis bileşenlerini kullanırSpring Web. Spring Data Redisdaha gelişmiş görevler için de kullanabileceğiniz Lettuce Redis sürücüsünü kullanır.

Verileri yönetmek için Spring kodu ekleme

  1. Spring Boot projenizde DemoApplication sınıfının yanına aşağıdaki gibi bir Todo etki alanı nesnesi ekleyin:

    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. Bu koleksiyonu aşağıdaki gibi yönetmek için TodoRepository adlı bir Spring Data Redis deposu oluşturun:

    package com.example.demo;
    
    import org.springframework.data.repository.CrudRepository;
    import org.springframework.stereotype.Repository;
    
    @Repository
    public interface TodoRepository extends CrudRepository<Todo, String> {
    
    }
    
  3. Aşağıdaki gibi TodoController adlı bir Spring MVC denetleyicisi ekleyin:

     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();
        }
    }
    

Redis için Azure Cache güvenlik anahtarlarını alma

  1. Redis için Azure Cache örneğinizin kullanıma hazır olup olmadığını denetlemek için aşağıdaki komutu çalıştırın.

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

    komutu, bir provisioningState öznitelik içeren JSON verilerini döndürür. değeri SucceededolduğundaprovisioningState, Redis için Azure Cache örneğiniz tam olarak kullanılabilir.

    Bahşiş

    jq yardımcı programınız varsa hazır olup olmadığını denetlemek için aşağıdaki tek komut satırını kullanabilirsiniz:

    az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP | jq '.provisioningState'
    
  2. Redis için Azure Cache örneği hazır olduğunda, güvenlik anahtarlarını almak için aşağıdaki komutu çalıştırın:

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

    primaryKey Sonraki adımda kullanmak üzere çıktıdaki değeri kopyalayın.

Spring Boot'u Redis için Azure Cache bağlanacak şekilde yapılandırma

Uygulamanızda src/main/resources/application.properties yapılandırma dosyasını açın ve aşağıdaki özellikleri ekleyin. Yer tutucuyu <redisName> Redis örneği adınızla değiştirin ve yer tutucuyu <redisPrimaryKey> önceki adımda aldığınız değerle primaryKey değiştirin.

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

Uygulamayı yerel olarak test etme

  1. Geliştirme ortamınızda yürütülebilir DemoApplication'ı çalıştırarak veya Spring Boot Maven eklentisini aşağıdaki gibi çalıştırarak Spring Boot uygulamanızı çalıştırın:

    ./mvnw spring-boot:run
    
  2. Uygulama çalışırken, aşağıdaki komutu kullanarak bazı verileri Redis'te depolayın:

    curl -d '{"description":"a description", "details":"some details"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:8080
    
  3. Şimdi bu verileri Redis'ten alın:

    curl http://127.0.0.1:8080
    

Spring Session aracılığıyla HTTP oturumu verilerini depolamak için Redis için Azure Cache kullanmayı öğrenmek için bir sonraki üniteye geçin.