SpringCloud从零开始简单搭建 - JDK17

文章目录

SpringCloud + Nacos从零开始简单搭建 - JDK17

环境要求:JDK17、Spring Boot3、maven。

那么,如何从零开始搭建一个 SpringCloud 项目呢?以下是具体步骤。

从零开始搭建一个SpringCloud项目呢,下面是一些步骤。

一、创建父项目

创建一个空的maven项目。

创建完成后,需进行一些细节操作。

  1. 删除 src 目录,仅保留 pom.xml 文件。
  2. 设置 idea 的 maven 仓库与配置文件。
  3. 配置 pom.xml。以下是最初版本父项目的配置文件,其中使用的依赖为最新版本。请注意修改 groupId、artifactId
    为你期望的名称。
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.sifan</groupId>
    <artifactId>sifan-ai</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <modules>
        <!--后面的时候子项目放这里-->
    </modules>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>

    <!--管理子项目maven包的版本-->
    <dependencyManagement>
        <dependencies>
            <!--spring-boot依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>3.3.3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring-cloud依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2023.0.3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring-cloud-alibaba依赖 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2023.0.1.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

SpringCloud Alibaba 与SpringCloud 与 SpringBoot的版本对应关系如下:

二、创建子项目

在父目录下创建module,也就是子项目。

建议直接使用Spring Initializr进行创建子项目。按需选择需要的组件。

1、修改子项目的pom.xml。将parent从SpringBoot改为自己创建的父项目。

xml 复制代码
    <parent>
        <groupId>com.sifan</groupId>
        <artifactId>sifan-ai</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

2、在父项目的pom文件中添加子项目

xml 复制代码
    <modules>
        <!--后面的时候子项目放这里-->
        <module>chat</module>
    </modules>

三、集成Nacos

咱们需要的nacos版本也是需要找到对应的。

1、下载nacos

github地址:nacos releases

下载完成后解压缩。

2、修改nacos启动文件

具体需要怎么走可以看官方文档。nacos docs

startup.cmd文件后缀改为txt。打开修改参数MOOE改为standalone

修改nacos的端口在conf目录下面。

3、启动nacos

双击startup.cmd。

4、在子项目中添加依赖

xml 复制代码
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

配置文件

yaml 复制代码
spring:
  application:
    name: chat
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:18848

四、集成nacos配置中心

1、子项目中添加依赖

xml 复制代码
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

2、在nacos创建一个配置文件

3、编写java中的配置文件

yaml 复制代码
spring:
  application:
    name: chat
  config:
    import: nacos:chat-dev.yml
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml

4、配置动态刷新

在启动类上加上注解@RefreshScope

java 复制代码
@RefreshScope
@SpringBootApplication
public class ChatApplication {
    public static void main(String[] args) {
        SpringApplication.run(ChatApplication.class, args);
    }
}

然后在需要使用nacos中动态数据的类上再加上@RefreshScope注解即可。

相关推荐
阿巴斯甜几秒前
Stream 的使用:
java
Foreer黑爷4 分钟前
Java并发工具箱:CountDownLatch与CyclicBarrier使用指南
java·开发语言·jvm
亦暖筑序11 分钟前
Spring AI Alibaba + RAG 实战:知识库检索模块从设计到落地
java·开源
stark张宇12 分钟前
Go 语言实现安全的分享链接:AES 加密 + SHA256 签名 + 过期防重放
后端·go
MeAT ITEM16 分钟前
ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇
java·spring boot·后端
ekuoleung18 分钟前
Spring Boot 3.4 + Java 21 在量化平台中的架构实践
java·架构
snakeshe101019 分钟前
SpringBoot 应用入门与 Docker 化部署实战
后端
Black蜡笔小新28 分钟前
国标GB28181视频监控平台EasyCVR赋能平安乡村建设,构筑乡村治理“数字防线”
java·网络·音视频
mldlds31 分钟前
Spring Boot 集成 MyBatis 全面讲解
spring boot·后端·mybatis
蚰蜒螟31 分钟前
从 pthread_create 到 thread_native_entry:glibc 如何唤醒 Java 线程
java·开发语言