快速搭建第一个SpringCloud程序

Posted 老王随聊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速搭建第一个SpringCloud程序相关的知识,希望对你有一定的参考价值。

目录

1、Spring Boot项目脚手架快速搭建

1.1 生成工程基本配置

1.2 生成工程。

1.3 导入开发工具(此处为Idea)

1.4 运行代码

1.5 验证是否能访问

2、Spring Cloud环境搭建

2.1 版本匹配问题

2.2 Spring Cloud环境测试

3、引入Eureka Server

3.1 引入依赖配置

3.2 Eureka Serve YML配置

3.3 启动类添加Eureka Server注解

3.4 启动项目并测试验证


由于Idea最新社区版不存在Spring Initializr插件,r需要认证收费。那除了采用集成插件外,我们采用另外一种通过引导方式, 直接通过官网提供的脚手架,创建完成后,导入自己的发工具中即可。

1、Spring Boot项目脚手架快速搭建

1.1 生成工程基本配置

官网地址:http://start.spring.io

注意:SpringBoot版本的选择,如果使用JDK8的话,则选择2.x.x版本。如果选择了3.0.0版本的SpringBoot,JDK最低要17。版本不适配会造成Application运行失败。

1.2 生成工程。

点击  生成工程。如下图,

生成的压缩包。

1.3 导入开发工具(此处为Idea)

将上述压缩包解压后,导入到Idea中。通过Maven更新所需要的包。依赖包较多,大概需要1~2分钟左右。

1.4 运行代码

编译没问题后,直接运行SpringCloudCaseApplication.java.

但是,此时我们会发现一个奇怪的问题。程序正常启动完后就自己结束了。

这是为什么呢?有两方面原因:

1)web项目需要引入,spring-boot-web包依赖。

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

2)服务运行环境依赖Tomcat。

下载中的demo配置为,

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

<scope>provided</scope> //仅作用于编译和测试阶段

</dependency>

需要调整为,

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

<scope>compile</scope> //在运行阶段也生效

</dependency>

scope参数说明:

Compile

默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布

Provided

跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。

Runtime

表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。 test表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布。 system跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。

此时,重启启动后,运行正常。

1.5 验证是否能访问

输入浏览器:http://localhost:8080/

 

由于我们没有配置controller, 所以会打印此错误信息,但是表明访问是正常的。

2、Spring Cloud环境搭建

我们知道,Spring Cloud是基于Spring Boot改进的框架。所以,可以直接在现有项目上去增加Spring Cloud相关组件即可。

2.1 版本匹配问题

引入springCLoud前,我们需要看下SpringCloud和SpringBoot版本对应关系. 否则,如果版本匹配有问题,启动则会报错。

解决SpringBoot和SpringCloud版本匹配问题:(本案例中使用版本)。

Spring Boot版本:

 <parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.2.8.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

 

Spring Cloud版本:

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Hoxton.SR12</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

不清楚这怎么看版本对应关系的同学请移步至前一篇文章。更多版本对应关系如下。

 

2.2 Spring Cloud环境测试

接下来,我们以Spring Cloud服务注册功能来验证Spring Cloud是否配置成功。pom.xml文件中加入Eureka依赖包。

3、引入Eureka Server

3.1 引入依赖配置

如下,

<dependency>

        <groupId>org.springframework.cloud</groupId>

        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

</dependency>

 

3.2 Eureka Serve YML配置

#指定应用名称

spring:

  application:

    name: eureka-server

# 服务注册中心 (单节点)

server:

  port: 8700

eureka:

  instance:

    hostname: localhost

  client:

    fetch-registry: false # 表示是否从Eureka Server获取注册信息,默认为true.因为这是一个单点的Eureka Server,不需要同步其他的Eureka Server节点的数据,这里设置为false

    register-with-eureka: false # 表示是否将自己注册到Eureka Server,默认为true.由于当前应用就是Eureka Server,故而设置为false.

    service-url:

      # 设置与Eureka Server的地址,查询服务和注册服务都需要依赖这个地址.默认是http://localhost:8761/eureka/;多个地址可使用','风格.

      defaultZone: http://$eureka.instance.hostname:$server.port/eureka/

 

3.3 启动类添加Eureka Server注解

@EnableEurekaServer。//表示可以将项目作为SpringCloud中的注册中心。用于激活Eureka服务器相关配置EurekaServerAutoConfiguration的注释。

 

3.4 启动项目并测试验证

启动成功后,如下图:

 

在浏览器中输如 http://localhost:8700.

 出现以上界面,说明Eureka Server配置成功。至此,Spring Cloud基本环境搭建完成。

以上!

02. SpringCloud实战项目-快速搭建Linux环境-运维必备

SpringCloud实战项目全套学习教程连载中

PassJava 学习教程

简介

  • PassJava-Learning项目是PassJava(佳必过)项目的学习教程。对架构、业务、技术要点进行讲解。
  • PassJava 是一款Java面试刷题的开源系统,可以用零碎时间利用小程序查看常见面试题,夯实Java基础。
  • PassJava 项目可以教会你如何搭建SpringBoot项目,Spring Cloud项目
  • 采用流行的技术,如 SpringBoot、MyBatis、Redis、 MySql、 MongoDB、 RabbitMQ、Elasticsearch,采用Docker容器化部署。

更好的阅读体验

文档连载目录

Vagrant快速搭建Ubuntu虚拟机环境

1.开启虚拟机服务

Windows启动配置:Intel Virtualization Technology -> Enabled

2.下载安装VirtualBox

VirtualBox:虚拟机管理软件

https://www.virtualbox.org/wiki/Downloads

3.下载安装Vagrant

Vagrant:创建和管理虚拟机

Vagrant 软件:https://www.vagrantup.com/downloads.html

Vagrant 官方镜像:https://app.vagrantup.com/boxes/search

mark

  • check是否安装好了vagrant

命令行输入 vagrant

vagrant

mark

4.安装 vagrant ubuntu 国内镜像

# ubuntu 18.04 LTS:
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box --name ubuntu18

# ubunt 16.04 LTS:
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/xenial/current/xenial-server-cloudimg-amd64-vagrant.box --name ubuntu16

# ubuntu14:
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box --name ubuntu14

安装ubuntu 18

vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box --name ubuntu18

mark

  • 创建vagrant配置文件
vagrant init
  • 打开C:\\Users\\Administrator\\Vagrantfile文件
config.vm.box = "base" 修改为
config.vm.box = "ubuntu18"

5.启动虚拟机

vagrant up

mark

mark

6.连接虚拟机

vagrant ssh

mark

公众号

mark

以上是关于快速搭建第一个SpringCloud程序的主要内容,如果未能解决你的问题,请参考以下文章

02. SpringCloud实战项目-快速搭建Linux环境-运维必备

springcloud01- SpringCloud快速搭建

超时空大决战

SpringCloud快速搭建

快速搭建springcloud环境

spring-cloud项目搭建