Exercício - Crie um aplicativo Spring Boot que use o Spring Data Redis
Nesta unidade, você cria um aplicativo Spring Boot que usa o Spring Data Redis para armazenar e recuperar dados do Cache do Azure para Redis. Você pode criar o aplicativo, exceto para a conexão final com o Cache do Azure para Redis, enquanto aguarda que sua instância do Cache do Azure para Redis conclua a implantação.
Criar o projeto Spring Boot
Para criar seu projeto Spring Boot, execute a seguinte linha de comando do Spring Initializr :
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 -
Nota
O comando usa Spring Web
e Spring Data Redis
componentes. Spring Data Redis
usa o driver Lettuce Redis, que você também pode usar para tarefas mais avançadas.
Adicionar código Spring para gerenciar dados
Em seu projeto Spring Boot, ao lado da classe DemoApplication, adicione um objeto de domínio Todo da seguinte maneira:
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; } }
Crie um repositório Spring Data Redis chamado TodoRepository para gerenciar essa coleção, da seguinte maneira:
package com.example.demo; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; @Repository public interface TodoRepository extends CrudRepository<Todo, String> { }
Adicione um controlador Spring MVC chamado TodoController, da seguinte maneira:
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(); } }
Obter chaves de segurança do Cache do Azure para Redis
Execute o seguinte comando para verificar se sua instância do Cache Redis do Azure está pronta para uso.
az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP
O comando retorna dados JSON que contêm um
provisioningState
atributo. QuandoprovisioningState
tiver o valorSucceeded
, sua instância do Cache do Azure para Redis estará totalmente disponível.Gorjeta
Se você tiver o utilitário jq , poderá usar a seguinte linha de comando única para verificar a prontidão:
az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP | jq '.provisioningState'
Quando a instância do Cache do Azure para Redis estiver pronta, execute o seguinte comando para recuperar suas chaves de segurança:
az redis list-keys \ --resource-group $AZ_RESOURCE_GROUP \ --name $AZ_REDIS_NAME
Copie o
primaryKey
valor da saída para usar na próxima etapa.
Configurar o Spring Boot para se conectar ao Cache Redis do Azure
Abra o arquivo de configuração src/main/resources/application.properties em seu aplicativo e adicione as seguintes propriedades. Substitua o espaço reservado pelo nome da instância do Redis e substitua o espaço reservado <redisName>
<redisPrimaryKey>
pelo primaryKey
valor obtido na etapa anterior.
spring.redis.host=<redisName>.redis.cache.windows.net
spring.redis.password=<redisPrimaryKey>
spring.redis.port=6380
spring.redis.ssl=true
Testar a aplicação localmente
Execute seu aplicativo Spring Boot, executando o executável DemoApplication em seu ambiente de desenvolvimento ou executando o plug-in Spring Boot Maven da seguinte maneira:
./mvnw spring-boot:run
Com o aplicativo em execução, armazene alguns dados no Redis usando o seguinte comando:
curl -d '{"description":"a description", "details":"some details"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:8080
Agora recupere esses dados do Redis:
curl http://127.0.0.1:8080
Vá para a próxima unidade para saber como usar o Cache Redis do Azure para armazenar dados de sessão HTTP por meio da Sessão de primavera.