Skip to content

Spring Boot Microservice

Java Spring Boot 4 HTTP service on JDK 25 with a Kubernetes deployment and an optional Grafana + Prometheus + Loki observability stack. Production-shaped: Spring Security via module-spring-security (JWT / API-key / opaque-token), Spring Data JPA with Flyway, Micrometer + OpenTelemetry, Helm chart, HPA, and ingress.

Namespring-boot-microservice
Version0.1.0
Tagsjava, spring-boot, jvm, microservice, api, kubernetes
Sourcecomposites/spring-boot-microservice.yaml

Render it

# CLI
npx @nanohype/sdk render-composite spring-boot-microservice --out ./my-app

# SDK
import { LocalSource, renderComposite } from "@nanohype/sdk";
const result = await renderComposite(source, "spring-boot-microservice", variables);

# MCP — from an agent
get_composite({ name: "spring-boot-microservice" })

What it draws together

TemplateRendered atNotes
spring-boot-servicerootthe root project
module-spring-security.
k8s-deployk8s
monitoring-stackobservabilityonly when IncludeMonitoring

Variables

Required

ProjectName string
Kebab-case project name, used across service, k8s resources, and repo Must be lowercase kebab-case.
GroupId string
Maven groupId (reverse-DNS, dot-separated, lowercase)
JavaPackage string
Root Java package (dot form)
PackageDir string
Root Java package as a directory path (slash form). Must be the slash-form of JavaPackage.

Optional

Database string — defaults to postgres
Database driver (postgres, mysql, h2)
Namespace string — defaults to default
Kubernetes namespace for deployed resources
Replicas string — defaults to 2
Kubernetes pod replica count
IncludeMonitoring bool — defaults to false
Include Grafana + Prometheus + Loki observability stack under observability/