使用Spring Initializr生成含Web、LoadBalancer、Config Client等依赖的项目骨架,按api/common/service-xxx/deploy分层组织模块,集成Actuator、服务发现、配置中心与链路追踪,并通过Dockerfile和K8s YAML实现容器化部署。

用Spring Initializr快速生成标准项目骨架
打开 https://start.spring.io,选择 Spring Boot 最新稳定版(如 3.2.x),语言选 Java,构建工具推荐 Maven。在 Dependencies 中勾选核心依赖:Spring Web(提供 REST 支持)、Spring Cloud Starter LoadBalancer(服务间调用负载均衡)、Spring Config Client(配置中心支持)、Actuator(健康检查与监控端点)。若需注册中心,可加 Spring Cloud Starter Netflix Eureka Client 或 Spring Cloud Alibaba Nacos Discovery。点击 Generate 下载 ZIP,解压后导入 IDE 即可运行。
按云原生规范组织模块结构
单体式包结构不适用于微服务。建议根目录下分层管理:
-
api:定义 OpenAPI 3.0 规范的 YAML 文件(如
openapi.yaml)和生成的 DTO/Client 接口(可用openapi-generator-maven-plugin自动生成) - common:存放跨服务通用组件,如统一异常处理、BaseEntity、Feign 配置、JWT 工具类
-
service-xxx:每个微服务独立模块(如
service-user、service-order),各自含完整启动类、Controller、Service、Repository - deploy:存放 Dockerfile、Kubernetes 的 Deployment/YAML 模板、Helm Chart 初始结构
集成基础云原生能力
开箱即用的云原生支持需主动启用:
- 在
application.yml中开启 Actuator 端点:management.endpoints.web.exposure.include: "*",并配置health.show-details: always - 添加
@EnableDiscoveryClient注解启用服务注册发现;配合@LoadBalanced的RestTemplate或WebClient.Builder实现服务间调用 - 使用
spring-cloud-starter-bootstrap(Spring Boot 3.2+ 推荐)加载bootstrap.yml,连接 Nacos / Apollo 等配置中心 - 引入
micrometer-tracing-bridge-brave+spring-cloud-starter-sleuth(或升级到 Micrometer Tracing)接入链路追踪
容器化与部署准备一步到位
新建 Dockerfile 放入各 service 模块根目录:
立即学习“Java免费学习笔记(深入)”;
FROM eclipse/temurin:17-jre-jammy
VOLUME /tmp
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]再配一个 .dockerignore 过滤 target、.git、IDEA 文件。同时在 deploy/k8s 下为每个服务准备最小可用 YAML:
-
configmap.yaml:外部化配置项 -
deployment.yaml:含 readiness/liveness 探针、资源限制(requests/limits) -
service.yaml:ClusterIP 类型,暴露内部端口
这样 CI 流水线拉取代码后,直接 build image → push registry → apply k8s manifest 即可上线。










