Spring Boot-mikroszolgáltatás létrehozása
Ebben a modulban létrehozunk egy felhőalapú Spring Boot-mikroszolgáltatást. Egy Spring Cloud-szolgáltatásregisztrációs adatbázist és egy Spring Cloud Config-kiszolgálót használ, amelyet az Azure Spring Apps felügyel és támogat.
Ez a mikroszolgáltatás a Spring Data JPA-t használja adatok olvasására és írására egy Azure-adatbázisból mySQL-adatbázisból :
- Az Azure Spring Apps automatikusan összekapcsolja az adatbázist a szolgáltatásunkkal.
- Az Azure database for MySQL a MySQL egy teljes mértékben felügyelt, Azure-on futó verziója.
Az alkalmazás létrehozása az Azure Spring Appsben
Hozzon létre egy adott todo-service
alkalmazást az Azure Spring Apps-példányban:
az spring app create --name todo-service --resource-group "$RESOURCE_GROUP_NAME" --service "$SPRING_CLOUD_NAME" --runtime-version Java_17
MySQL-adatbázis létrehozása
Hozzon létre egy Azure Database for MySQL-t:
az mysql server create \
--name ${SPRING_CLOUD_NAME}-mysql \
--resource-group "$RESOURCE_GROUP_NAME" \
--sku-name B_Gen5_1 \
--storage-size 5120 \
--admin-user "spring"
Ez a művelet eltarthat néhány percig, és JSON-dokumentumot ad ki: másolja a jelszóattribútumot a dokumentumba, ahogy később használni fogjuk.
Most hozzon létre egy todos-adatbázist a kiszolgálón, és nyissa meg a tűzfalát, hogy az Azure Spring Apps hozzáférhessen:
az mysql db create \
--name "todos" \
--server-name ${SPRING_CLOUD_NAME}-mysql
az mysql server firewall-rule create \
--name ${SPRING_CLOUD_NAME}-mysql-allow-azure-ip \
--resource-group "$RESOURCE_GROUP_NAME" \
--server ${SPRING_CLOUD_NAME}-mysql \
--start-ip-address "0.0.0.0" \
--end-ip-address "0.0.0.0"
A művelet elvégzése után megtekintheti a workshophoz létrehozott erőforráscsoportban létrehozott elemeket.
A MySQL-adatbázis alkalmazáshoz kötése
Az Azure Spring Apps automatikusan összekapcsolhatja a létrehozott MySQL-adatbázist a mikroszolgáltatásunkkal.
Lépjen az Azure Spring Apps-példányra.
Válassza az Alkalmazások lehetőséget.
Válassza ki a todo-service alkalmazást.
Válassza a Szolgáltatás Csatlakozás or lehetőséget, majd a + Létrehozás lehetőséget.
- Szolgáltatástípus esetén válassza az önálló MySQL-kiszolgáló adatbázisát.
- Adjon meg egy kapcsolatnevet, például mysql_todos.
- Ellenőrizze, hogy a megfelelő előfizetés látható-e.
- Válassza ki az előző lépésekben létrehozott MySQL-kiszolgálót.
- Válassza ki a korábban létrehozott MySQL-adatbázist.
- Válassza a SpringBoot lehetőséget ügyféltípusként.
- Válassza a Tovább: Hitelesítés gombot.
A Hitelesítés lapon ellenőrizze, hogy Csatlakozás ion sztring van-e kiválasztva.
Válassza a Folytatás elemet... Adatbázis hitelesítő adatai , és adja meg a felhasználónév és a jelszó mezőket. A felhasználónév "spring", a jelszó pedig a korábban másolt jelszóattribútum.
Megjegyzés:
Ha elfelejti a jelszavát, a jelszó alaphelyzetbe állításához használja a
az mysql server update -n ${SPRING_CLOUD_NAME}-mysql -g "$RESOURCE_GROUP_NAME" -p <new-password>
Ellenőrizze, hogy a tűzfalszabályok konfigurálása a célszolgáltatáshoz való hozzáférés engedélyezéséhez be van-e jelölve.
Kattintson a Tovább gombra : Véleményezés + Létrehozás.
Miután megjelenik az Ellenőrzés átadott üzenet, válassza a Létrehozás gombot a Szolgáltatás Csatlakozás or létrehozásához.
Spring Boot-mikroszolgáltatás létrehozása
Most, hogy kiépítettük az Azure Spring Apps-példányt, és konfiguráltuk a szolgáltatáskötést, szerezzük be a kódot.todo-service
A mikroszolgáltatás létrehozásához a következő parancssort fogjuk használni https://start.spring.io :
curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=web,mysql,data-jpa,cloud-eureka,cloud-config-client -d baseDir=todo-service -d bootVersion=3.1.5.RELEASE -d javaVersion=17 | tar -xzvf -
Megjegyzés:
A , , Spring Data JPA
MySQL Driver
, Eureka Discovery Client
és az Config Client
összetevőket használjukSpring Web
.
Spring-kód hozzáadása az adatkezeléshez a Spring Data JPA segítségével
A DemoApplication
osztály mellett hozzon létre egy új Todo
JPA-entitást:
package com.example.demo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Todo {
public Todo() {
}
public Todo(String description, boolean done) {
this.description = description;
this.done = done;
}
@Id
@GeneratedValue
private Long id;
private String description;
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 boolean isDone() {
return done;
}
public void setDone(boolean done) {
this.done = done;
}
}
Ezután hozzon létre egy TodoRepository
nevű Spring Data JPA-adattárat az entitás kezeléséhez:
package com.example.demo;
import org.springframework.data.jpa.repository.JpaRepository;
public interface TodoRepository extends JpaRepository<Todo, Long> {
}
Az alkalmazás kódolását egy TodoController
nevű Spring MVC-vezérlő hozzáadásával zárja le:
package com.example.demo;
import org.springframework.web.bind.annotation.*;
import javax.annotation.PostConstruct;
import java.util.Arrays;
@RestController
public class TodoController {
private final TodoRepository todoRepository;
public TodoController(TodoRepository todoRepository) {
this.todoRepository = todoRepository;
}
@PostConstruct
public void init() {
todoRepository.saveAll(Arrays.asList(
new Todo("First item", true),
new Todo("Second item", true),
new Todo("Third item", false)));
}
@GetMapping("/")
public Iterable<Todo> getTodos() {
return todoRepository.findAll();
}
}
A Spring Boot konfigurálása az adatbázistáblák létrehozásához
Ahhoz, hogy az alkalmazás üzembe helyezésekor automatikusan létrejöjjenek az adatbázistáblák, adja hozzá az alábbi sort az src/main/resources/application.properties
konfigurációs fájlhoz:
spring.jpa.hibernate.ddl-auto=create-drop
Az alkalmazás üzembe helyezése
Most már létrehozhatja a todo-service projektet, és elküldheti az Azure Spring Appsbe:
cd todo-service
./mvnw clean package -DskipTests
az spring app deploy --name todo-service --service "$SPRING_CLOUD_NAME" --resource-group "$RESOURCE_GROUP_NAME" --artifact-path target/demo-0.0.1-SNAPSHOT.jar
cd ..
Ha ellenőrizni szeretné az alkalmazás naplóit, használja az az spring app logs
parancsot:
az spring app logs --name todo-service --service "$SPRING_CLOUD_NAME" --resource-group "$RESOURCE_GROUP_NAME" -f
A projekt tesztelése a felhőben
Most, hogy üzembe helyezte az alkalmazást, ideje tesztelni.
- Az Azure Portalon nyissa meg az Azure Spring Apps-példány alkalmazásait .
- Ellenőrizze, hogy a todo-service 0/1 regisztrációs állapotú-e. Ezek az információk azt mutatják, hogy helyesen van regisztrálva a Spring Cloud szolgáltatásregisztrációs adatbázisában.
- A mikroszolgáltatásról a todo-service lehetőség kiválasztásával kaphat további információt.
- Másolja és illessze be a megadott „tesztvégpontot”.
A cURL segítségével most tesztelheti a végpontot. A tesztparancsnak a következőhöz hasonlóan kell kinéznie:
curl https://primary:XXXXXXXXXXXXXXXXXXXXXXXXXXXXX@azure-spring-cloud-workshop.test.azuremicroservices.io/todo-service/default/
A parancsnak azt a három elemet kell eredményeznie, amelyeket a korábban beillesztett a MySQL-adatbázisba:
[{"id":"1","description":"First item","done":true},{"id":"2","description":"Second item","done":true},{"id":"3","description":"Third item","done":false}]