搭建springcloud+nacos项目--IDEA

文章目录


1、前置

1、前置介绍, 环境, 以及对应的依赖说明 (重点)
2、创建项目 (主要是给基础像我一样薄弱的同学使用)
3、配置对应的pom文件 (重点)
4、以服务发现进行测试
5、个人总结

1、前置介绍, 环境, 以及对应的依赖说明

环境说明:

  • JDK:1.8
  • maven: 3.6.3(本来我用的是3.3.9, 至于为什么更换了版本, 这个后面会说明, 版本是否更换不影响)
  • Spring Boot: 2.2.5.RELEASE
  • Spring Cloud: Hoxton.SR3
  • Spring Cloud Alibaba: 2.2.1.RELEASE
  • 开发工具: IntelliJ IDEA 2020.2 x64
  • 系统: Windows 10

搭建项目前, 还是要说一下Spring Boot、 Cloud、Cloud Alibaba三者对应的关系

  • Spring Cloud 基于 Spring Boot
  • Spring Cloud Alibaba 是 Spring Cloud 的子项目

先把这个顺序理清楚了, 我们在搭建项目的时候, 以及在后面进行功能的开发,以及所碰到的问题, 包的配置方面, 都能够做到思维更清晰

Spring相关版本不清楚的, 可以参考我本专栏的第一篇文章, 有做详细说明

2、创建项目

1. 创建父项目

  1. 选择maven
  2. next finish (不做任何勾选)
  3. 删除src
    在这里插入图片描述
    在这里插入图片描述

2. 创建子项目

  1. new module
  2. 选择spring initializr, 默认选择, next
  3. 选择对应的jdk版本, 打包方式
  4. 图片有做讲解
  5. next
  6. 留一个src和pom文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、配置pom文件

1.父项目pom.xml

  1. 这里需要说一下spring对应的三个依赖从哪里获取, 或者说我为什么这么写, 网上搜索出来的往往各种各样的, 自己有时都不知该如何进行选择, 我们需要有一个自己的抉择标准
  2. 这个项目中的, 父项目的pom.xml的作用主要是用来做版本控制使用, 统一jar包版本
  3. springCloud: 我是从官方找寻的:https://spring.io/projects/spring-cloud
  4. springCloudAlibaba: 我是从官方找寻的:https://spring.io/projects/spring-cloud-alibaba
  5. 基于3、4, 以及上面说有的spring三者的关系,我知道我还缺一个springBoot的
  6. 最终我是在nacos的GitHub进行确定了以下的用法:https://github.com/alibaba/spring-cloud-alibaba/blob/master/pom.xml. 这个gitHub进入方式: nacos官网-Nacos Spring Cloud 快速开始-划到最下面有一个Spring Cloud Alibaba (这里要重点说明一下, 官方给的GitHub, 我们也要注意是否过时, 版本对否偏低, 比如nacos完整示例代码请参考,就是已经很久没有进行更新过的项目了)

在这里插入图片描述
在这里插入图片描述

<?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>org.example</groupId>
    <artifactId>untitledTest</artifactId>
    <packaging>pom</packaging>
    <version>${revision}</version>

    <!-- 指定模块, 指定对应的子项目 -->
    <modules>
        <module>demo</module>
    </modules>

    <properties>
        <!-- 指定项目版本 -->
        <revision>1.0-SNAPSHOT</revision>

		<!-- 指定SpringBoot版本 -->
        <spring-boot.version>2.2.5.RELEASE</spring-boot.version>
        <!-- 指定SpringCloud版本 -->
        <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
        <!-- 指定SpringCloudAlibaba版本 -->
        <spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
        <!-- 指定JDK版本 -->
        <java-jdk.version>1.8</java-jdk.version>
    </properties>

    <!-- dependencyManagement: 对所依赖jar包进行版本管理的管理器,声明依赖,并不实现引入.
     1.不在子项目中声明依赖,是不会从父项目中继承下来的
     2.只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项
     3.子项目中指定了版本号,那么会使用子项目中指定的jar版本。
     主要: 主要管理版本
     -->
    <dependencyManagement>
        <dependencies>
            <!-- 声明依赖 springBoot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 声明依赖 springCloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 声明依赖 springCloudAlibaba -->
            <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.子项目pom.xml

  1. 应用父项目, 由于父项目已经指定了版本, 我们在引用的时候就不需要在对版本进行指定(这里不指定版本, 是指比如:spring-cloud-alibaba-dependencies下面包含的包), 查看方式 ctrl+鼠标左键, 或者通过包的依赖图进行查看
    在这里插入图片描述
    在这里插入图片描述

  2. 引入父项目的版本, 我们写的是${revision}, Windows的可能会报一个红线, 只是IDEA没有识别, 网上有说升级maven到3.5.0以上, 我试了一下没有起到效果, 不知道是不是我的方式不对, 也是我上面环境介绍中maven版本为什么有两个导致的, 解决方法:
    在这里插入图片描述
    在这里插入图片描述

    <?xml version="1.0" encoding="UTF-8"?>


    4.0.0


    org.example
    untitledTest
    ${revision}

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>${revision}</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>
    
    <dependencies>
        <!-- 父项目中我们已经指定了对应的版本, 这里直接使用就行, 不用在引用版本 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <!-- 服务注册与发现 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    

4、以服务发现做测试

上面的pom.xml文件中, 我们已经导入了服务发现的包
这里直接运行

application.yml:

server:
  # 端口
  port: 18082

spring:
  application:
    name: testName
  cloud:
    nacos:
      discovery:
        # 指定nacos server的地址
        server-addr: 127.0.0.1:8848

可能会报错如下:

2021-03-13 00:50:53.059 ERROR 17696 --- [           main] o.s.boot.SpringApplication               : Application run failed
java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yml'
解决方式:
修改右下角字符集 UTF-8

2021-03-13 00:53:52.714  WARN 17132 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : No service to register for nacos client..
解决方式,指定:
spring:
  application:
    name: testName

在这里插入图片描述
启动成功:
在这里插入图片描述
在这里插入图片描述

5、个人总结

  1. 其实本篇博客只是简单的介绍,有很多地方都没有写出来, 还需要大家自行在深入研究一下. 比如我们项目的版本我是通过revision进行标记, 是否可以采用revision_test了答案在第二点列举的文档中有说明
  2. 基于pom文件, 里面有很多节点, 这里也只是列举了部分, 大家可以查阅官方文档: http://maven.apache.org/pom.html#The_Super_POM, 以及父pom.xml还可以扩展很多, 大家可以查阅一下官方GitHub给的案列
  3. 本篇文章中也是查阅了很多文章, 网上寻找了很多列子, 最后影响自己决定使用哪种方法, 都是通过官方文档或者官方示列
  4. 父pom.xml文件里面还可以指定dependencies节点, 模块都会使用到的jar, 都可以在父模块进行指定, 子模块进行引入就行
  5. 个人建议, 既然已经做到微服务了, 对pom文件的结构一定要多了解一点, 深入一点, 对自己会有很大的帮助的
  6. 以官方文档为树干, 已网上文章为树枝进行扩展
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud Nacos是一种基于Nacos的微服务架构中的服务发现和配置管理工具。它提供了服务注册与发现、服务健康监测、动态配置管理等功能,可以帮助我们更好地管理前端Vue项目的上线部署。 首先,我们需要在前端Vue项目中引入Spring Cloud Nacos的相关依赖。可以通过Maven或者Gradle方式引入,具体的依赖可以参考Spring Cloud Nacos的官方文档。 接下来,在前端Vue项目的配置文件中,我们需要指定Nacos服务的地址和端口号。这样前端项目就可以通过Nacos注册和发现相关的微服务。配置文件的具体内容如下所示: ``` nacos: server-addr: localhost:8848 ``` 然后,我们需要在前端Vue项目中编写相应的代码来获取Nacos中的配置信息。可以使用Nacos提供的Java SDK或者相关的RESTful接口来实现。通过动态配置管理的功能,我们可以在Nacos中配置前端Vue项目的一些运行参数,并实时获取这些配置信息。 最后,我们需要将前端Vue项目打包,并将打包后的文件部署到服务器上。可以使用Nginx等Web服务器来托管前端静态资源文件。部署过程中需要注意配置Nginx来正确地映射前端Vue项目的访问路径。 总结来说,通过引入Spring Cloud Nacos的依赖,配置Nacos的地址和端口号,编写相关代码来获取Nacos中的配置信息,并将前端Vue项目打包部署到服务器上,我们就可以实现前端Vue项目的上线部署。这样可以更好地管理和配置前端项目,提高项目的可维护性和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值