news 2026/4/15 9:01:40

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/12 6:01:45

《贾子智慧理论体系:从认知到文明的统一框架》| Kucius Wisdom Framework: A Unified Framework from Cognition to Civilization

贾子智慧理论体系&#xff1a;从认知到文明的统一框架 Kucius Wisdom Framework: A Unified Framework from Cognition to Civilization 摘要&#xff1a; 本书系统构建了贾子智慧理论体系&#xff0c;旨在应对AI时代认知、技术与文明治理的多重断裂。该体系以“贾子公理”为最…

作者头像 李华
网站建设 2026/4/14 23:54:49

JBoltAI:Java人工智能开发框架的实用指南

在 Java 企业寻求 AI 转型的过程中&#xff0c;JBoltAI 作为一款企业级 AI 应用开发框架&#xff0c;从场景开发、学习支持到解决方案落地&#xff0c;为开发者提供了多维度的支持。下面结合其核心模块&#xff0c;聊聊它在实际开发中的应用方向。一、场景开发范例&#xff1a;…

作者头像 李华
网站建设 2026/4/12 15:48:25

Java毕设选题推荐:基于springboot的智慧旅游系统目的地资源信息查询 - 行程规划 - 体验互动【附源码、mysql、文档、调试+代码讲解+全bao等】

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

作者头像 李华
网站建设 2026/4/14 0:16:36

大模型领域高级岗位招聘要求全解析,程序员从入门到精通指南

本文汇总了多个大模型相关高级技术与管理岗位的招聘要求&#xff0c;包括产业互联网CTO/COO、首席AI架构师、法律AI技术总监等。这些岗位普遍要求应聘者具备大模型训练、推理、优化和部署的专业知识&#xff0c;以及团队管理和业务协同能力。文章详细列出各岗位职责、任职资格和…

作者头像 李华
网站建设 2026/4/12 20:25:56

一文读懂AI模型家族架构:从感知到执行的智能流水线

文章揭示了AI模型家族是一条"感知→语言→概念→决策→执行"的智能流水线&#xff0c;而非单一模型。详细解析了LLM&#xff08;语言层&#xff09;、LCM&#xff08;概念层&#xff09;和LAM&#xff08;行动层&#xff09;三大认知维度&#xff0c;以及MoE、SLM、V…

作者头像 李华