Ćwiczenie — tworzenie aplikacji Spring Boot korzystającej z usługi Spring Data Redis
W tej lekcji utworzysz aplikację Spring Boot, która używa usługi Spring Data Redis do przechowywania i pobierania danych z usługi Azure Cache for Redis. Możesz utworzyć aplikację, z wyjątkiem końcowego połączenia z usługą Azure Cache for Redis, podczas gdy czekasz na zakończenie wdrażania wystąpienia usługi Azure Cache for Redis.
Tworzenie projektu Spring Boot
Aby utworzyć projekt Spring Boot, uruchom następujący wiersz polecenia 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 -
Uwaga
Polecenie używa składników Spring Web
i Spring Data Redis
. Spring Data Redis
używa sterownika Lettuce Redis, którego można również używać do wykonywania bardziej zaawansowanych zadań.
Dodawanie kodu Spring w celu zarządzania danymi
W projekcie Spring Boot obok klasy DemoApplication dodaj obiekt domeny Todo w następujący sposób:
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; } }
Utwórz repozytorium Spring Data Redis o nazwie TodoRepository , aby zarządzać tą kolekcją w następujący sposób:
package com.example.demo; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; @Repository public interface TodoRepository extends CrudRepository<Todo, String> { }
Dodaj kontroler Spring MVC o nazwie TodoController w następujący sposób:
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(); } }
Uzyskiwanie kluczy zabezpieczeń usługi Azure Cache for Redis
Uruchom następujące polecenie, aby sprawdzić, czy wystąpienie usługi Azure Cache for Redis jest gotowe do użycia.
az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP
Polecenie zwraca dane JSON zawierające
provisioningState
atrybut. JeśliprovisioningState
ma wartośćSucceeded
, wystąpienie usługi Azure Cache for Redis jest w pełni dostępne.Napiwek
Jeśli masz narzędzie jq , możesz użyć następującego pojedynczego wiersza polecenia, aby sprawdzić gotowość:
az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP | jq '.provisioningState'
Gdy wystąpienie usługi Azure Cache for Redis jest gotowe, uruchom następujące polecenie, aby pobrać jego klucze zabezpieczeń:
az redis list-keys \ --resource-group $AZ_RESOURCE_GROUP \ --name $AZ_REDIS_NAME
primaryKey
Skopiuj wartość z danych wyjściowych do użycia w następnym kroku.
Konfigurowanie platformy Spring Boot do nawiązywania połączenia z usługą Azure Cache for Redis
Otwórz plik konfiguracji src/main/resources/application.properties w aplikacji i dodaj następujące właściwości. <redisName>
Zastąp symbol zastępczy nazwą wystąpienia usługi Redis i zastąp <redisPrimaryKey>
symbol zastępczy wartością primaryKey
uzyskaną z poprzedniego kroku.
spring.redis.host=<redisName>.redis.cache.windows.net
spring.redis.password=<redisPrimaryKey>
spring.redis.port=6380
spring.redis.ssl=true
Testowanie aplikacji w środowisku lokalnym
Uruchom aplikację Spring Boot, uruchamiając plik wykonywalny DemoApplication w środowisku projektowym lub uruchamiając wtyczkę Spring Boot Maven w następujący sposób:
./mvnw spring-boot:run
Po uruchomieniu aplikacji zapisz dane w usłudze Redis przy użyciu następującego polecenia:
curl -d '{"description":"a description", "details":"some details"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:8080
Teraz pobierz te dane z usługi Redis:
curl http://127.0.0.1:8080
Przejdź do następnej lekcji, aby dowiedzieć się, jak używać usługi Azure Cache for Redis do przechowywania danych sesji HTTP za pośrednictwem sesji Spring.