Alıştırma - Spring Data Redis kullanan bir Spring Boot uygulaması oluşturma
Bu ünitede, Redis için Azure Cache verileri depolamak ve almak için Spring Data Redis kullanan bir Spring Boot uygulaması oluşturacaksınız. Redis için Azure Cache örneğinizin dağıtımı tamamlanmasını beklerken Redis için Azure Cache son bağlantı dışında uygulamayı oluşturabilirsiniz.
Spring Boot projesini oluşturma
Spring Boot projenizi oluşturmak için aşağıdaki Spring Initializr komut satırını çalıştırın:
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 -
Dekont
komutu ve Spring Data Redis
bileşenlerini kullanırSpring Web
. Spring Data Redis
daha gelişmiş görevler için de kullanabileceğiniz Lettuce Redis sürücüsünü kullanır.
Verileri yönetmek için Spring kodu ekleme
Spring Boot projenizde DemoApplication sınıfının yanına aşağıdaki gibi bir Todo etki alanı nesnesi ekleyin:
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; } }
Bu koleksiyonu aşağıdaki gibi yönetmek için TodoRepository adlı bir Spring Data Redis deposu oluşturun:
package com.example.demo; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; @Repository public interface TodoRepository extends CrudRepository<Todo, String> { }
Aşağıdaki gibi TodoController adlı bir Spring MVC denetleyicisi ekleyin:
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(); } }
Redis için Azure Cache güvenlik anahtarlarını alma
Redis için Azure Cache örneğinizin kullanıma hazır olup olmadığını denetlemek için aşağıdaki komutu çalıştırın.
az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP
komutu, bir
provisioningState
öznitelik içeren JSON verilerini döndürür. değeriSucceeded
olduğundaprovisioningState
, Redis için Azure Cache örneğiniz tam olarak kullanılabilir.Bahşiş
jq yardımcı programınız varsa hazır olup olmadığını denetlemek için aşağıdaki tek komut satırını kullanabilirsiniz:
az redis show --name $AZ_REDIS_NAME --resource-group $AZ_RESOURCE_GROUP | jq '.provisioningState'
Redis için Azure Cache örneği hazır olduğunda, güvenlik anahtarlarını almak için aşağıdaki komutu çalıştırın:
az redis list-keys \ --resource-group $AZ_RESOURCE_GROUP \ --name $AZ_REDIS_NAME
primaryKey
Sonraki adımda kullanmak üzere çıktıdaki değeri kopyalayın.
Spring Boot'u Redis için Azure Cache bağlanacak şekilde yapılandırma
Uygulamanızda src/main/resources/application.properties yapılandırma dosyasını açın ve aşağıdaki özellikleri ekleyin. Yer tutucuyu <redisName>
Redis örneği adınızla değiştirin ve yer tutucuyu <redisPrimaryKey>
önceki adımda aldığınız değerle primaryKey
değiştirin.
spring.redis.host=<redisName>.redis.cache.windows.net
spring.redis.password=<redisPrimaryKey>
spring.redis.port=6380
spring.redis.ssl=true
Uygulamayı yerel olarak test etme
Geliştirme ortamınızda yürütülebilir DemoApplication'ı çalıştırarak veya Spring Boot Maven eklentisini aşağıdaki gibi çalıştırarak Spring Boot uygulamanızı çalıştırın:
./mvnw spring-boot:run
Uygulama çalışırken, aşağıdaki komutu kullanarak bazı verileri Redis'te depolayın:
curl -d '{"description":"a description", "details":"some details"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:8080
Şimdi bu verileri Redis'ten alın:
curl http://127.0.0.1:8080
Spring Session aracılığıyla HTTP oturumu verilerini depolamak için Redis için Azure Cache kullanmayı öğrenmek için bir sonraki üniteye geçin.