news 2026/4/16 18:15:23

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/16 14:25:59

第6章:字符设备驱动的高级操作1:ioctl 系统调用

In Chapter 3, we built a complete device driver that the user can write to and read from. But a real device usually offers more functionality than synchronous read and write. Now that we’re equipped with debugging tools should something go awry— and a fi…

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

【计算机毕业设计案例】基于springboot医院固定资产设备维修报修系统基于springboot的医院设备管理及报修小程序的设计与实现(程序+文档+讲解+定制)

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

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

小程序毕设项目:基于springboot的医院设备管理及报修小程序的设计与实现(源码+文档,讲解、调试运行,定制等)

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

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

大数据时序分析,这些要点你掌握了吗?

大数据时序分析,这些要点你掌握了吗? 一、引言 在当今数字化时代,数据如潮水般涌来,其中大量数据都具有时间序列的特性。从金融市场的股价波动、物联网设备产生的传感器数据,到气象监测中的温度变化等,这些按时间顺序排列的数据蕴含着丰富的信息,对其进行有效的分析能…

作者头像 李华
网站建设 2026/4/16 15:31:31

YOLO26涨点改进 | 全网独家创新、细节涨点改进篇 | SCI 一区 2025 | 引入RHDWT残差离散小波变换,下采样创新改进,助力目标检测、图像分类、实例分割有效涨点

一、本文介绍 本文给大家介绍使用 Residual Haar Discrete Wavelet Transform (RHDWT) 模块与 YOLO26 结合,能够显著提升目标检测的效果,尤其是在处理带有条纹噪声或复杂背景的图像时。RHDWT模块通过结合条纹噪声的方向性先验与数据驱动的特征交互,增强了图像的特征表示,去…

作者头像 李华