Övning – Skapa ett Spring Boot-program som använder Spring Data Redis
I den här lektionen skapar du ett Spring Boot-program som använder Spring Data Redis för att lagra och hämta data från Azure Cache for Redis. Du kan skapa programmet, förutom den slutliga anslutningen till Azure Cache for Redis, medan du väntar på att din Azure Cache for Redis-instans ska slutföra distributionen.
Skapa Spring Boot-projektet
Skapa ditt Spring Boot-projekt genom att köra följande Spring Initializr kommandorad:
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 -
Not
Kommandot använder komponenterna Spring Web
och Spring Data Redis
.
Spring Data Redis
använder drivrutinen Lettuce Redis, som du också kan använda för mer avancerade uppgifter.
Lägga till Spring-kod för att hantera data
Lägg till ett Todo-domänobjekt bredvid klassen DemoApplication i Spring Boot-projektet på följande sätt:
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; } }
Skapa en Spring Data Redis-lagringsplats med namnet TodoRepository för att hantera den här samlingen på följande sätt:
package com.example.demo; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; @Repository public interface TodoRepository extends CrudRepository<Todo, String> { }
Lägg till en Spring MVC-styrenhet med namnet TodoControllerenligt följande:
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(); } }
Hämta Säkerhetsnycklar för Azure Cache for Redis
Kör följande kommando för att kontrollera om din Azure Cache for Redis-instans är redo att användas.
az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP
Kommandot returnerar JSON-data som innehåller ett
provisioningState
attribut. NärprovisioningState
har värdetSucceeded
är Azure Cache for Redis-instansen helt tillgänglig.Tips
Om du har verktyget jq kan du använda följande kommandorad för att kontrollera beredskapen:
az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP | jq '.provisioningState'
När Azure Cache for Redis-instansen är klar kör du följande kommando för att hämta dess säkerhetsnycklar:
az redis list-keys \ --resource-group $AZ_RESOURCE_GROUP \ --name $AZ_REDIS_NAME
Kopiera värdet
primaryKey
från utdata, för att använda i nästa steg.
Konfigurera Spring Boot för att ansluta till Azure Cache for Redis
Öppna src/main/resources/application.properties konfigurationsfil i ditt program och lägg till följande egenskaper. Ersätt platshållaren <redisName>
med ditt Redis-instansnamn och ersätt platshållaren <redisPrimaryKey>
med det primaryKey
värde som du fick från föregående steg.
spring.redis.host=<redisName>.redis.cache.windows.net
spring.redis.password=<redisPrimaryKey>
spring.redis.port=6380
spring.redis.ssl=true
Testa programmet lokalt
Kör ditt Spring Boot-program genom att antingen köra den körbara DemoApplication- i utvecklingsmiljön eller genom att köra Plugin-programmet Spring Boot Maven på följande sätt:
./mvnw spring-boot:run
När programmet körs lagrar du vissa data i Redis med hjälp av följande kommando:
curl -d '{"description":"a description", "details":"some details"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:8080
Hämta nu dessa data från Redis:
curl http://127.0.0.1:8080
Gå vidare till nästa enhet för att lära dig hur du använder Azure Cache for Redis för att lagra HTTP-sessionsdata via Spring Session.