IDEA 搭建 SpringCloud 项目【超详细步骤】

这篇具有很好参考价值的文章主要介绍了IDEA 搭建 SpringCloud 项目【超详细步骤】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

所谓微服务,就是要把整个业务模块拆分成多个各司其职的小模块,做到单一职责原则,不会重复开发相同的业务代码,实现真正意义上的高内聚、低耦合。同时,微服务可以对外暴露接口,供其它微服务使用。

如果我们在 A 服务中发起一个 http 请求到 B 服务,那么就可以实现微服务的远程调用。(restTemplate 的 getForObject 方法可以向浏览器发起请求)
这种方法看起来是可行的,但是把 url 路径和 Java 代码耦合到一起,是不符合开闭原则的。于是就出现了 Eureka 注册中心。

每一个微服务在启动的那一刻都需要做一件事情,就是把自己的服务信息注册给 Eureka,比如服务名称、服务端口等,其它微服务想要调用另一个服务的时候,直接去 Eureka 里面拉取信息就可以了。
同时,为了避免拉取的服务已经挂掉了,我们的服务每隔 30 秒就会向 Eureka 发起一次心跳,来证明自己还活着,如果有一天不跳了,Eureka 就会把它从注册列表中剔除。

如果存在多个服务提供者,服务消费者就会利用负载均衡算法,从服务列表中挑选一个!

二、项目搭建

1. 数据库准备

此处我们要准备两个数据库,user 服务和 order 服务各自拥有自己的数据库。

CREATE TABLE USER (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
phone VARCHAR(15) NOT NULL,
address VARCHAR(50) NOT NULL
);

INSERT INTO USER VALUES (1, "栈老师不回家", 13299075426, "山西省大同市")
INSERT INTO USER(NAME, phone, address) VALUES ("肖恩", 18834267011, "山西省太原市")
INSERT INTO USER(NAME, phone, address) VALUES ("李华", 12481076533, "山西省运城市")

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(30) NOT NULL,
price INT NOT NULL,
user_id INT NOT NULL REFERENCES USER(id)
)

INSERT INTO orders VALUES (1, "可乐鸡翅", 32, 1);
INSERT INTO orders(NAME, price, user_id) VALUES("冰镇啤酒", 12, 1);
INSERT INTO orders(NAME, price, user_id) VALUES("草莓冰激凌", 8, 2);
INSERT INTO orders(NAME, price, user_id) VALUES("狼牙土豆", 10, 3);

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

2. 创建父工程

① 还是 SpringBoot 项目,选择 Spring Web 依赖

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

② 删掉 src 目录及 mvnw 开头的两个文件

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

③ 在 pom 文件中添加 packaging 标签和 SpringCloud 版本,并修改 SpringBoot 版本

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

④ 引入 mysql 和 mybatis 依赖,供后续使用

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

⑤ 添加 SpringCloud 依赖库,后续子模块使用的时候就不需要再指定版本了

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

3. 创建注册中心

① 在父级项目上新建模块

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

② 选择 Eureka Server

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

③ 修改子模块的 parent 标签内容,指向父工程

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

因为父模块中已经指定了 SpringCloud 的版本,所以子模块不需要再重复写!

④ 在父级 pom 中添加该子模块

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

⑤ 因为子类会继承父类的依赖,所以子类中多余的依赖可以删掉,后续需要什么加什么

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

⑤ 编写 application.yml 文件

#服务端口,随便起
server:
  port: 11011
#服务名称
spring:
  application:
    name: eurekaserver
  datasource:
    url: jdbc:mysql:///ZXEdb?serverTimezone=UTC
    username: root
    password: 856724bb
    driver-class-name: com.mysql.cj.jdbc.Driver

#eureka地址
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:11011/eureka/
    register-with-eureka: false
    fetch-registry: false
    

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

服务名称和 eureka 地址的配置我们可以认为是服务注册的配置,而 eureka 自己也是一个微服务,所以在服务启动的时候,它也会把自己注册到 eureka 上!

⑥ 启动类上添加 @EnableEurekaServer 注解

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

⑦ 输入 http://localhost:11011/,出现以下界面即 Eureka 创建成功。

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

4. 服务注册

情形:
创建一个 order 服务和一个 user 服务,并把它们都注册到 eureka 中。order 里面需要用到 user,所以此时的 order 是消费者,user 是提供者。

对于服务的注册,我们只需要完成两步:
① 引入 spring-cloud-starter-netflix-eureka-client 依赖;
② 在 yml 文件中配置服务名称和 eureka 地址。

eureka 服务的依赖是 server,其余微服务都是 client!

① 创建 order 服务和 user 服务

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

② 引入 eureka 客户端依赖

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

③ 在父级 pom 中添加该子模块

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

④ 编写 yml 配置文件

#服务端口,随便起
server:
  port: 8081
#服务名称
spring:
  application:
    name: userserver
  datasource:
    url: jdbc:mysql:///user?serverTimezone=UTC
    username: root
    password: 856724bb
    driver-class-name: com.mysql.cj.jdbc.Driver

#eureka地址
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:11011/eureka/

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

④ 启动类上添加 @EnableEurekaServer 注解

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

以上是 user 的注册,order 同理!

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

5. 编写业务代码

要求查询订单表,其中订单表里面包含用户信息。

① 实体类

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

② 配置文件中添加驼峰命名功能及实体映射

#开启驼峰命名及实体映射
mybatis:
  type-aliases-package: com.zxe.orderserver.pojo
  configuration:
    map-underscore-to-camel-case: true
    

③ 编写数据层、业务层及控制层的代码

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml
idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

6. 服务拉取

服务拉取是基于服务名称获取服务列表,然后再对服务列表做负载均衡。

① 在 order-service 的启动类中注册 RestTemplate

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml

@LoadBalanced 注解用来做负载均衡!

② 编写 OrderService 代码,order 要调用 user,自然要用到 user 接口的访问路径,此处的路径中我们用服务名来代替 localhost

@Service
public class OrderService {

    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private RestTemplate restTemplate;

    public Order findById(Integer id) {
        Order order = orderMapper.find(id);
        String url = "http://userserver/user/" + order.getUserId();
        User user = restTemplate.getForObject(url, User.class);
        order.setUser(user);
        return order;
    }
}

③ 运行结果

idea新建springcloud项目,SpringCloud,intellij-idea,spring cloud,uml文章来源地址https://www.toymoban.com/news/detail-751428.html

到了这里,关于IDEA 搭建 SpringCloud 项目【超详细步骤】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 运用idea创建javaweb项目的详细步骤(入门无脑)

    1.首先点击file,会出现new标签,然后鼠标悬停在new上会出现右侧的选择框,然后点击project; 2.当完成上述,其会出现一个弹窗,其默认选择java,若不是,则选择java,然后点击next; 3.继续点击next;   4.然后根据自己的需要,给项目命名,一般project name和project location后面的名

    2024年02月07日
    浏览(49)
  • 在 IDEA 中创建 Java Web 项目的方式(详细步骤教程)

    以下是我的开发环境 JDK 1.8 Maven 3.6.3 Tomcat 9.0 IDEA 2019(2019 无所畏惧,即使现在已经 2023 年了哈哈哈) 下面的内容可能会因 IDEA 版本不同,而有些选项不同,但是大同小异。 1. 打开 IDEA 点击 Create New Project 2. 点击 Java Enterprise 点击左侧 Java Enterprise ,默认选项如下图所示。找到

    2024年02月08日
    浏览(55)
  • 在 IDEA 中创建 Spring Boot 项目的方式(详细步骤教程)

    以下是我的开发环境 JDK 1.8 Maven 3.6.3 IDEA 2019(2019 无所畏惧,即使现在已经 2023 年了哈哈哈) 下面的内容可能会因 IDEA 版本不同,而有些选项不同,但是大同小异。 点击 Create New Project 点击左边的 Maven,默认选择你的 JDK,然后点击 Next。 输入你的项目名称、存储位置、组等信

    2024年02月03日
    浏览(55)
  • 通过IDEA将java程序或者项目打包为jar包(详细步骤)

    通过IDEA将java程序或者项目打包为jar包 文章目录 目录 文章目录 一、使用java语言,编写一个字典(Dict)Demo 二、将Dict程序打包为jar包 代码如下: 1.点击file,点击project structure. 2.点击Artifacts,点击“+”,点击JAR,点击from......dependencies.  3.选择项目位置Module,和程序类Main Class(要

    2024年02月11日
    浏览(53)
  • idea配置springBoot或者SpringCloud微服务多环境配置

    在SpringBoot项目中,我们可能需要配置环境变量来应对不同运行环境,例如我们需要在公司环境连nacos才可以跑本地项目,但是到甲方环境就是另外一种环境。本文章列出几种除了配置application.yml的方法 一.在Edit Configurations里找到Program arguments:输入指令--nacos-ip=10.9.119.40:30848 -

    2024年02月13日
    浏览(26)
  • 2023最新IntellJ IDEA诺依SpringCloud开发部署文档(保姆级别)

    目录 若依RuoYi v3.6.2部署文档 一、环境构建 二、模块描述 三、部署后端 1、下载到本地。 2、MySQL导入数据。 3、Nacos修改 (1)保证本地Nacos下载安装成功,修改本地Nacos的application.properties。 (2)启动本地的Nacos. 4、启动本地的Redis 5、启动如下模块 四、部署前端 1、保证Node安装没有

    2024年02月07日
    浏览(38)
  • 2023 最新版IntelliJ IDEA 2023.1创建Java Web 项目详细步骤(图文详解)

    如果需要学习使用spring-boot3搭建Java Web项目,请移步:2023 最新版IntelliJ IDEA 2023.1创建Java Web前(vue3)后端(spring-boot3)分离 项目详细步骤(图文详解) 安装什么的这里就不说了,都是傻瓜式的安装,但是你需要知道安装的位置,切记!切记! 使用版本:java 20.0.1 2023-04-18 官

    2024年02月05日
    浏览(103)
  • 【快速解决】使用IDEA快速搭建SpringBoot项目(超详细)

    前言         Spring Boot是Spring Framework的一款脚手架式框架,可以帮助开发者快速构建基于Spring的企业级应用程序。本篇博客将介绍如何使用IntelliJ IDEA(以下简称IDEA)来快速搭建一个Spring Boot项目。 目录 ​编辑 前言 使用IDEA快速搭建SpringBoot项目 建立步骤 第一步新建一个

    2024年04月09日
    浏览(30)
  • 在idea中搭建微服务项目(22版),详细教程

            1.创建新的项目          2.创建的项目类型为SpringBoot              选择创建后再选择新建项目                   3. 将新建的项目中不需要的东西都给删了,只留下pom文件即可          修改pom文件的版本          导入所需要的jar包,将原来dependencies中的依

    2024年02月09日
    浏览(26)
  • IDEA新建JAVA项目

    环境:jdk、配置好环境变量。 1.打开idea,选择Create New Project。如果已经打开其他项目,点击File-New-Project,也可以打开新建的界面。(项目的文件名可以提前在磁盘新建好,也可以在第4步的时候,选择项目路径时有文件夹新建图标) 2.在右侧选择Java,选择JDK安装的路径,因为

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包