Primeros Pasos
Generar un nuevo proyecto
mvn archetype:generate \
-DarchetypeGroupId=io.zutun.templates \
-DarchetypeArtifactId=template-spring-microservice-multitenant \
-DarchetypeVersion=<version>
Ademas de las propiedades estandar de Maven (groupId, artifactId, version), el arquetipo solicitara las siguientes propiedades:
| Propiedad | Descripcion | Default |
|---|---|---|
|
Paquete base de Java |
|
|
Nombre del servicio Spring Boot |
|
|
Descripcion breve del servicio |
|
|
Prefijo base para los endpoints REST |
|
|
Tag de agrupacion en la documentacion OpenAPI |
|
|
Nombre del aggregate root principal (PascalCase) |
— |
|
Nombre del bounded context (camelCase) |
— |
|
Nombre de la tabla principal en base de datos |
— |
Las propiedades sin default son obligatorias.
Configurar el entorno local
El proyecto generado incluye el archivo application-local.yaml con una configuracion lista para desarrollo. Utiliza una base de datos H2 en archivo y tres tenants preconfigurados:
tenants:
default-tenant: "public"
defaults:
url: jdbc:h2:file:./.db/${spring.application.name};DB_CLOSE_DELAY=-1;AUTO_SERVER=TRUE
username: sa
password: sa
data-sources:
public:
tenant-id: null
schema: public
tenant1:
tenant-id: 674b414f-27b5-461b-a8da-933326669018
schema: tenant1_schema
tenant2:
tenant-id: 26653eb6-bf32-4bcd-aee3-49311d3addbe
schema: tenant2_schema
El proyecto tambien incluye un script wizard.sh para facilitar la configuracion inicial:
./wizard.sh init-all
Comandos disponibles:
| Comando | Descripcion |
|---|---|
|
Genera las run configurations de IntelliJ IDEA. |
|
Inicializa la base de datos H2 local con los esquemas de los tenants configurados. |
|
Ejecuta |
|
Arranca el servicio con el perfil |
Ejecutar el servicio
./wizard.sh run
O directamente con Maven:
mvn spring-boot:run -Dspring-boot.run.profiles=local
El perfil local utiliza una base de datos H2 en archivo con tenants de ejemplo preconfigurados, sin necesidad de infraestructura externa.
Una vez iniciado, la documentacion OpenAPI estara disponible en http://localhost:8080/swagger-ui.html.
A desarrollar
Ya tenes un microservicio funcional. Importa el proyecto en tu IDE y empieza a construir tu dominio. Si prefieres avanzar con un ejemplo concreto, el Tutorial: Task Manager te guia paso a paso.