Oefening: een Spring Boot-toepassing maken die gebruikmaakt van Spring Data Redis
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 maakt gebruik van Spring Web
en Spring Data Redis
onderdelen.
Spring Data Redis
gebruikt het redis-stuurprogramma Lettuce, dat u ook kunt gebruiken voor geavanceerdere taken.
Spring-code toevoegen om gegevens te beheren
Voeg in uw Spring Boot-project naast de klasse DemoApplication een Todo domeinobject als volgt 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; } }
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> { }
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(); } }
Azure Cache voor Redis-beveiligingssleutels ophalen
Voer de volgende opdracht uit om te controleren of uw Exemplaar van Azure Cache voor Redis 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. WanneerprovisioningState
de waardeSucceeded
heeft, is uw exemplaar van Azure Cache voor Redis 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'
Wanneer het Exemplaar van Azure Cache voor Redis 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 src/main/resources/application.properties configuratiebestand in uw toepassing en voeg de volgende eigenschappen toe. Vervang de tijdelijke aanduiding <redisName>
door de naam van uw Redis-exemplaar en vervang de tijdelijke aanduiding <redisPrimaryKey>
door de primaryKey
waarde die u hebt gekregen uit de vorige stap.
spring.redis.host=<redisName>.redis.cache.windows.net
spring.redis.password=<redisPrimaryKey>
spring.redis.port=6380
spring.redis.ssl=true
De toepassing lokaal testen
Voer uw Spring Boot-toepassing uit door het uitvoerbare DemoApplication- uit te voeren in uw ontwikkelomgeving of door de Spring Boot Maven-invoegtoepassing als volgt uit te voeren:
./mvnw spring-boot:run
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
Haal die gegevens nu op uit Redis:
curl http://127.0.0.1:8080
Ga verder met de volgende les om te leren hoe u Azure Cache voor Redis gebruikt om HTTP-sessiegegevens op te slaan via Spring Session.