贝利信息

在Java中如何搭建微服务开发环境_Java微服务环境准备说明

日期:2026-01-14 00:00 / 作者:P粉602998670
Spring Boot微服务应基于spring-boot-starter-parent快速初始化,选用LTS版本(如3.3.5),引入web和actuator起步依赖,禁用banner;注册中心优先选Nacos或Consul,避免Eureka和ZooKeeper;本地联调推荐Docker Compose编排Nacos、MySQL等组件;配置须严格区分bootstrap.yml(仅放引导级配置)与application.yml,通过spring.profiles.active指定环境。

用 Spring Boot + Maven 快速初始化微服务模块

微服务不是从零写框架,而是基于约定优先的脚手架快速启动。Spring Boot 官方推荐用 spring-boot-starter-parent 作为父 POM,它统一管理依赖版本、插件配置和默认属性。不手动指定 spring-boot-dependencies 版本,否则容易触发 ClassNotFoundException 或自动配置失效。

关键操作点:


  org.springframework.boot
  spring-boot-starter-parent
  3.3.5
  

注册中心选型:Eureka 已停更,优先用 Nacos 或 Consul

Eureka 2.x 自 2018 年起已停止维护,Netflix 官方明确标记为 deprecated。Spring Cloud 2025+ 版本默认移除对 Eureka 的原生支持,强行使用会导致 NoUniqueBeanDefinitionException 或服务无法注册。

替代方案对比:

本地多服务联调:用 Docker Compose 启动依赖组件

微服务不是单体打包就能跑通。常见失败场景是服务 A 调用服务 B 时抛 Connection refused,本质是没启动注册中心或 MySQL/Redis 连不上。

推荐用 docker-compose.yml 统一编排基础组件,而不是靠 IDE 手动启多个 Spring Boot 实例:

services:
  nacos:
    image: nacos/nacos-server:v2.3.2
    ports: ["8848:8848"]
    environment:
      - MODE=standalone
  mysql:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=123456

调试时别忽略 spring.profiles.active 和 bootstrap.yml

微服务配置加载顺序很关键:bootstrap.yml 优先于 application.yml 加载,且只被 Spring Cloud Config/Nacos 等外部配置中心读取。如果把 spring.cloud.nacos.server-addr 写在 application.yml 里,服务根本注册不上去。

另一个高频问题:本地开发切 dev 环境,但启动类没传参,spring.profiles.active 默认是 default,导致读不到 application-dev.yml

配置加载链实际是:bootstrap.yml → 连接 Nacos → 拉取远程 application-dev.yml → 合并本地 application-dev.yml → 覆盖 application.yml