Oefening: een Spring Boot-toepassing maken die gebruikmaakt van Spring Data Redis

Voltooid

In deze les maakt u een Spring Boot-toepassing die Spring Data Redis gebruikt om gegevens op te slaan en op te halen uit Azure Cache voor Redis. U kunt de toepassing maken, met uitzondering van de uiteindelijke verbinding met Azure Cache voor Redis, terwijl u wacht tot uw Azure Cache voor Redis exemplaar is geïmplementeerd.

Het Spring Boot-project maken

Voer de volgende Spring Initializr-opdrachtregel uit om uw Spring Boot-project te maken:

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 -

Notitie

De opdracht gebruikt Spring Web en Spring Data Redis onderdelen. Spring Data Redis maakt gebruik van het stuurprogramma Lettuce Redis, dat u ook kunt gebruiken voor geavanceerdere taken.

Spring-code toevoegen om gegevens te beheren

  1. Voeg in uw Spring Boot-project, naast de klasse DemoApplication , als volgt een Todo-domeinobject toe:

    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. Maak als volgt een Spring Data Redis-opslagplaats met de naam TodoRepository om deze verzameling te beheren:

    package com.example.demo;
    
    import org.springframework.data.repository.CrudRepository;
    import org.springframework.stereotype.Repository;
    
    @Repository
    public interface TodoRepository extends CrudRepository<Todo, String> {
    
    }
    
  3. Voeg als volgt een Spring MVC-controller toe met de naam TodoController:

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

Beveiligingssleutels voor Azure Cache voor Redis ophalen

  1. Voer de volgende opdracht uit om te controleren of uw Azure Cache voor Redis exemplaar gereed is voor gebruik.

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

    Met de opdracht worden JSON-gegevens geretourneerd die een provisioningState kenmerk bevatten. Wanneer provisioningState de waarde Succeededis, is uw Azure Cache voor Redis exemplaar volledig beschikbaar.

    Tip

    Als u het hulpprogramma jq hebt, kunt u de volgende enkele opdrachtregel gebruiken om de gereedheid te controleren:

    az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP | jq '.provisioningState'
    
  2. Wanneer het Azure Cache voor Redis exemplaar gereed is, voert u de volgende opdracht uit om de bijbehorende beveiligingssleutels op te halen:

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

    Kopieer de primaryKey waarde uit de uitvoer die u in de volgende stap wilt gebruiken.

Spring Boot configureren om verbinding te maken met Azure Cache voor Redis

Open het configuratiebestand src/main/resources/application.properties in uw toepassing en voeg de volgende eigenschappen toe. Vervang de tijdelijke aanduiding door de <redisName> naam van uw Redis-exemplaar en vervang de <redisPrimaryKey> tijdelijke aanduiding door de primaryKey waarde die u in de vorige stap hebt gekregen.

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

De toepassing lokaal testen

  1. Voer uw Spring Boot-toepassing uit door de uitvoerbare DemoApplication uit te voeren in uw ontwikkelomgeving of door de Spring Boot Maven-invoegtoepassing als volgt uit te voeren:

    ./mvnw spring-boot:run
    
  2. Als de toepassing wordt uitgevoerd, slaat u enkele gegevens op in Redis met behulp van de volgende opdracht:

    curl -d '{"description":"a description", "details":"some details"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:8080
    
  3. Haal die gegevens nu op uit Redis:

    curl http://127.0.0.1:8080
    

Ga verder met de volgende les voor meer informatie over het gebruik van Azure Cache voor Redis voor het opslaan van HTTP-sessiegegevens via Spring Session.