springCould基础项目

📅 2026/8/6 14:07:29
springCould基础项目
springCould基础项目一、准备工作编码工具idea环境java17、maven其他nacos微服务架构中Nacos的核心作用可以概括为两点服务注册与发现中心以及动态配置管理中心。它就像一个微服务的“通讯录”和“控制面板”解决了服务之间如何互相找到、以及如何在不重启的情况下调整设置的问题。二、项目结构myblog下的每一个模块就是一个微服务其中myblog-common是公共类主要放置共同的类方法类之类的。父项目主要负责管理子项目依赖的基本版本父项目的主要配置pom.xmlparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.3.2/versionrelativePath/!-- lookup parent from repository --/parentpackagingpom/packagingmodulesmodulemyblog-common/modulemodulemyblog-article/modulemodulemyblog-gateway/modulemodulemyblog-admin/module/modulesproperties!-- 统一版本管理 --java.version17/java.versionspring-boot.version3.3.2/spring-boot.versionmyblog-common.version0.0.1-SNAPSHOT/myblog-common.versionlombok.version1.18.30/lombok.versionmysql.version8.4.0/mysql.versionmybatis-plus.version3.5.7/mybatis-plus.version!-- Spring Cloud 相关版本 --spring-cloud.version2023.0.2/spring-cloud.versionspring-cloud-alibaba.version2023.0.1.0/spring-cloud-alibaba.version/propertiesdependencyManagementdependencies!-- Spring Boot Web 启动器 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion${spring-boot.version}/version!-- 建议与基础依赖保持相同版本 --/dependency!-- Lombok 依赖 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/version!-- 请根据实际情况填写具体版本 --optionaltrue/optional/dependency!-- Spring Boot 测试依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdversion${spring-boot.version}/version!-- 建议与基础依赖保持相同版本 --scopetest/scope/dependency!-- 连接mysql的依赖 --dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdversion${mysql.version}/version/dependency!-- springboot结合mybatis-plus --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-spring-boot3-starter/artifactIdversion${mybatis-plus.version}/version/dependency!-- 新增Spring Cloud 依赖管理 --!-- 新增这个字典里记录了 Spring Cloud 旗下几十个组件如 Gateway、OpenFeign各自应该用哪个版本--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency!-- 新增Spring Cloud Alibaba 依赖管理 --!-- 这个字典里记录了 Nacos、Sentinel、Seata 等阿里组件应该用哪个版本--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagement三、api接口提供方一个子项目article的主要pom.xmlparentgroupIdcom.caolvchong/groupIdartifactIdmyblog/artifactIdversion0.0.1-SNAPSHOT/version/parentdependencies!--基础公共类--dependencygroupIdcom.caolvchong/groupIdartifactIdmyblog-common/artifactIdversion0.0.1-SNAPSHOT/version/dependency!-- Spring Boot 基础依赖继承自父项目 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency!-- Spring Boot Web 启动器用于构建 Web 应用包含 Tomcat 和 Spring MVC --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- Lombok 依赖用于通过注解简化 Java 代码如自动生成 Getter/Setter --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- Spring Boot 测试依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- 连接mysql的依赖 --dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactId/dependency!-- springboot结合mybatis-plus --dependencygroupIdcom.baomidou/groupId!--1. 注意这里必须换成带 spring-boot3 后缀的坐标 --artifactIdmybatis-plus-spring-boot3-starter/artifactId/dependency!-- 配置中心 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency!-- Nacos 服务注册与发现 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency!-- 服务间声明式调用(OpenFeign)--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency!-- 负载均衡器(Spring Cloud2020 必须引入)--!-- 只要你的微服务项目中使用了 OpenFeign 或者带有 LoadBalanced 注解的 RestTemplate 进行服务间调用 就必须引入 spring-cloud-starter-loadbalancer。缺少它微服务架构下的服务调用将完全无法运转。--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependency/dependenciesartilce的配置文件主要连接nacos进行配置server:# 服务端口号port:8081spring:# 服务端名称,对应 Nacos 上的 Data ID 前缀application: name: myblog-article-service config:# Spring Cloud 2020 版本 强制要求显式声明配置导入import: optional:nacos:myblog-article-service.yaml cloud: nacos:# 2. 服务发现配置用于注册与发现discovery: server-addr:103.212.187.237:8848 group: BLOG_GROUP namespace: e802618c-aa9c-45d0-a521-41f0997ba376# 3. 配置中心配置用于拉取配置必须单独写config: server-addr:103.212.187.237:8848 group: BLOG_GROUP namespace: e802618c-aa9c-45d0-a521-41f0997ba376 file-extension: yaml在article中编写一个正常的接口package com.caolvchong.myblogarticle.controller;/** * 类别 */ RestController RequestMapping(/category)public class CategoryController{Autowired private CategoryService categoryService;/** * 获取所有分类 * return */ PostMapping(/getCatgoryList)public ResultVoListCategorygetCategoryList(){ListCategorylistcategoryService.list();if(list!null){returnResultVo.success(list);}else{returnResultVo.error(400,获取失败);}}}四、api接口的调用方admin的pom.xml和article基本相同主要添加openfeign的依赖这个依赖主要是去向其他微服务发送请求!-- 服务间声明式调用(OpenFeign)--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency修改启动类package com.caolvchong.myblogadmin;//SpringBootApplication EnableFeignClients SpringBootApplication(exclude{DataSourceAutoConfiguration.class})public class MyblogAdminApplication{public static void main(String[]args){SpringApplication.run(MyblogAdminApplication.class, args);}}发送请求的接口/** * admin获取 分类 */ //name对应微服务的service的name FeignClient(namemyblog-article-service)public interface CategoryClient{/** * 获取所有分类 * return */ //路径一定要和提供方的路径相同 PostMapping(/category/getCatgoryList)public ResultVoListCategoryDtogetCategoryList();}