news 2026/4/21 20:19:01

Java零基础必看,1小时搞定微服务,从0到1搭建springcloud+nacos实战项目,搞定企业刚需技术!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java零基础必看,1小时搞定微服务,从0到1搭建springcloud+nacos实战项目,搞定企业刚需技术!

Java零基础必看,1小时搞定微服务,从0到1搭建springcloud+nacos实战项目,搞定企业刚需技术!

一、前置准备(5 分钟)

确保你的电脑已安装以下环境,这是运行项目的基础:

  1. JDK 8+:微服务主流版本适配,配置好JAVA_HOME环境变量
  2. Maven 3.6+:用于项目依赖管理,配置好MAVEN_HOME
  3. Nacos Server:下载地址:https://github.com/alibaba/nacos/releases
    • 启动命令(Windows):bin/startup.cmd -m standalone(单机模式)
    • 启动后访问:http://localhost:8848/nacos,默认账号 / 密码:nacos/nacos

二、核心思路

  1. 先搭建父工程统一管理依赖版本,避免版本冲突
  2. 搭建服务提供者(provider):提供接口供其他服务调用
  3. 搭建服务消费者(consumer):通过 Nacos 调用提供者接口
  4. 基于 Nacos 实现服务注册 / 发现配置管理

三、实战编码(50 分钟)

步骤 1:创建父工程(Maven)

xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 父工程坐标 --> <groupId>com.example</groupId> <artifactId>springcloud-nacos-demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <!-- 子模块声明 --> <modules> <module>nacos-provider</module> <module>nacos-consumer</module> </modules> <!-- 依赖版本管理 --> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <spring-cloud-alibaba.version>2.2.9.RELEASE</spring-cloud-alibaba.version> <spring-cloud.version>Hoxton.SR12</spring-cloud.version> <spring-boot.version>2.3.12.RELEASE</spring-boot.version> </properties> <!-- 依赖版本锁定 --> <dependencyManagement> <dependencies> <!-- Spring Boot 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- Spring Cloud 依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- Spring Cloud Alibaba 依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
步骤 2:创建服务提供者(nacos-provider)
1. 子工程 pom.xml

xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>com.example</groupId> <artifactId>springcloud-nacos-demo</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>nacos-provider</artifactId> <dependencies> <!-- Spring Boot Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Nacos 服务注册发现 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> </project>
2. 配置文件(application.yml)

yaml

server: port: 8081 # 提供者端口 spring: application: name: nacos-provider # 服务名称(核心,Nacos通过这个名称识别服务) cloud: nacos: discovery: server-addr: localhost:8848 # Nacos服务地址
3. 启动类 + 业务接口

java

运行

package com.example.provider; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; // 开启服务注册发现(Nacos) @EnableDiscoveryClient @SpringBootApplication public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } // 业务接口:模拟提供数据服务 @RestController class ProviderController { // 接口路径:/hello/{name} @GetMapping("/hello/{name}") public String hello(@PathVariable String name) { return "Hello " + name + "! 我是Nacos服务提供者"; } } }
步骤 3:创建服务消费者(nacos-consumer)
1. 子工程 pom.xml

xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>com.example</groupId> <artifactId>springcloud-nacos-demo</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>nacos-consumer</artifactId> <dependencies> <!-- Spring Boot Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Nacos 服务注册发现 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- RestTemplate:用于远程调用 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> </dependencies> </project>
2. 配置文件(application.yml)

yaml

server: port: 8082 # 消费者端口 spring: application: name: nacos-consumer # 消费者服务名称 cloud: nacos: discovery: server-addr: localhost:8848 # Nacos服务地址
3. 启动类 + 调用逻辑
package com.example.consumer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; // 开启服务注册发现 @EnableDiscoveryClient @SpringBootApplication public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } // 配置RestTemplate,开启负载均衡(@LoadBalanced) @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } // 消费者接口:调用提供者服务 @RestController class ConsumerController { // 注入RestTemplate private final RestTemplate restTemplate; // 构造器注入 public ConsumerController(RestTemplate restTemplate) { this.restTemplate = restTemplate; } // 接口路径:/consumer/hello/{name} @GetMapping("/consumer/hello/{name}") public String hello(@PathVariable String name) { // 调用提供者服务:使用服务名称(nacos-provider)代替IP+端口,实现服务发现 String url = "http://nacos-provider/hello/" + name; return restTemplate.getForObject(url, String.class); } } }

四、测试验证(5 分钟)

  1. 启动 Nacos Server(确保 8848 端口正常)
  2. 启动nacos-provider(8081 端口)
  3. 启动nacos-consumer(8082 端口)
  4. 访问 Nacos 控制台:http://localhost:8848/nacos,在「服务管理」→「服务列表」中能看到nacos-providernacos-consumer两个服务
  5. 测试接口:访问http://localhost:8082/consumer/hello/Java微服务,返回结果:Hello Java微服务! 我是Nacos服务提供者,说明调用成功。

总结

  1. 核心依赖:Spring Cloud Alibaba Nacos Discovery 实现服务注册与发现,RestTemplate 实现服务间远程调用。
  2. 关键配置:每个微服务需配置spring.application.name(服务名)和spring.cloud.nacos.discovery.server-addr(Nacos 地址),且启动类需加@EnableDiscoveryClient
  3. 核心逻辑:消费者通过服务名(而非硬编码 IP)调用提供者接口,由 Nacos 自动发现服务地址,实现微服务解耦。

这个实战项目覆盖了企业微服务开发的核心刚需:服务注册发现、跨服务调用,是 Spring Cloud + Nacos 的最小可用模型,后续可扩展配置中心、熔断降级、网关等企业级特性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 12:52:30

为啥大厂 FPS 进对局不立刻清空局外缓存,而是打完再清?(大白话超长版)

玩 FPS 你肯定见过这种流程: 你在大厅里:看商城、换枪皮、调灵敏度、看好友在线 点“开始匹配” 进加载界面 进对局:打得热火朝天 打完结算:经验+1、段位涨、任务完成、掉落发放 回大厅:又能立刻点下一把、又能立刻看战绩、聊天也还在 很多人做框架时会冒出一个“很合理但…

作者头像 李华
网站建设 2026/4/22 4:21:53

【课程设计/毕业设计】基于微信小程序的医院设备管理及报修系统基于springboot的医院设备管理及报修小程序的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/19 18:23:24

Java毕设项目推荐-基于springboot+vue智慧旅游服务平台网站系统基于springboot的智慧旅游系统【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/22 14:48:05

Java计算机毕设之基于java的中医养生系统的设计和实现基于springboot+vue的java的中医养生系统的设计和实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华