本文为新手向教程,帮助大家快速入门 Spring Cloud 开发,也作为「跟我学 Spring Cloud Alibaba」系列的补充文章,文章会在公众号「架构进化论」进行首发更新,欢迎关注。

一般来说,Intelij IDEA 可以通过 Maven Archetype 来快速生成Maven项目,其实 IDEA 集成了 Spring 官方提供的 Spring Initializr,可以非常方便的创建 Maven 项目,而且能自动生成启动类和单元测试代码。

下面我们学习如何快速搭建一个 Spring Cloud 工程,示例使用 Spring Boot 2.2.2 版本。

创建一个新工程

1.创建一个新工程,选择maven,点击下一步

2.填写项目相关的信息,进到下一步

3.填写项目名和项目位置,命名为 spring cloud demo,点击 finish

4.这样我们就创建好了一个普通项目,该项目是作为一个Parent project存在的,可以直接删除src文件夹

添加 EurekaServer 子项目

1.在项目上右键-->new-->module-->Spring Initializr-->next

2.填写项目相关信息,这里命名为 eureka-server,进入下一步

3.选择Cloud Discovery-->Eureka Server,下一步

4.填写项目名和项目位置等,完成

5.IDEA会自动生成Application类,添加@EnableEurekaServer,该注解表明标注类是一个Eureka Server

6.修改配置,切换启动端口,默认生成的项目配置文件是 application.properties,这里我替换成application.yml

# 服务注册中心 (单节点)
server:port: 8761
eureka:instance:hostname: localhostclient:fetch-registry: false # 表示是否从Eureka Server获取注册信息,默认为true.因为这是一个单点的Eureka Server,不需要同步其他的Eureka Server节点的数据,这里设置为falseregister-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/

eureka的配置信息可以查看 org.springframework.cloud.netflix.eureka. EurekaClientConfigBean ,参考源码了解含义。

7.启动项目,在浏览器中输入http://localhost:8761/ ,访问Eureka控制台,服务正常启动

8.如果启动报错,配置文件未生效,检查下 target 目录下是否正确引用了 application.yml 文件。

添加 EurekaProducer 服务生产者

1.按照同样的方式,创建一个项目,这里我们创建一个Spring Boot风格的服务,创建时需要勾选 Spring Cloud Discover--> Eureka Discover Client 和 Spring Web 的依赖。

2.在application启动类中加入注解@EnableEurekaClient,表明自己属于一个生产者。这里为了方便测试,直接使用@RestController获取返回值。

3.修改配置,注册到Eureka Server。

server:port: 8765spring:application:name: eureka-producereureka:client:service-url:defaultZone: http://localhost:8761/eureka # 指定服务注册中心

4.启动应用,刷新Eureka控制台,可以看到服务已经注册到Eureka上

5.如果启动有问题,检查是否缺少Spring Boot web的依赖包,可以尝试添加如下配置:

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

创建 Eureka Consumer 服务消费者

1.通过 Spring Initializr,创建一个 Eureka Discovery Client 模块,同时要勾选加入Spring Web依赖。

2.修改原有配置,指定服务注册中心,这里还是使用yml文件。

server:port: 8763spring:application:name: eureka-consumereureka:client:service-url:defaultZone: http://localhost:8761/eureka # 指定服务注册中心

2.在启动类中添加@EnableDiscoveryClient表明标注类是消费者,加入restTemplate来消费相关的服务。

@SpringBootApplication
@EnableDiscoveryClient
public class EurekaClientApplication {public static void main(String[] args) {SpringApplication.run(EurekaClientApplication.class, args);}@Bean@LoadBalancedRestTemplate restTemplate(){return new RestTemplate();}}

3.创建controller层,消费远程服务

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;@RestController
public class DemoController {@AutowiredRestTemplate restTemplate;@RequestMapping("greet")public String sayHello(@RequestParam String name){return restTemplate.getForObject("http://service-hello/sayHello?param=" + name, String.class);}
}

4.配置完毕以后,启动服务消费者,刷新Eureka控制台,可以看到消费者已经注册。

5.打开浏览器输入localhost:{server.port}/path 进行服务调用,这里我用 http://localhost:8763/greet?name=eureka ,可以看到请求正确返回,正确调用了服务提供者。

总结

本文通过IDEA的插件,快速创建了一个基于Eureka进行服务发现的Spring Cloud工程实例。
除了集成插件,也可以直接访问 http://start.spring.io ,通过引导,在脚手架中创建自己的项目,导入到开发工具中,感兴趣的同学可以去试下。

作者:邴越

原文链接

更多云计算干货敬请关注阿里云官网知乎机构号:阿里云官网 - 知乎

idea创建springcloud项目_新手向,十分钟快速创建 Spring Cloud 项目相关推荐

  1. springboot controller访问不到_构建微服务:快速搭建Spring Boot项目

    Spring Boot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...

  2. SpringCloud核心教程 | 第二篇: 使用Intellij中的maven来快速构建Spring Cloud工程

    spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环 ...

  3. 告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目(实际项目开发的浓缩精华版)

    告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目 一.前言 二.如何选择版本 2.1 SpringCloud 和 Spring Boot 版本选型 2.1. ...

  4. python新手教程 从零开始-Python零基础从零开始学习Python十分钟快速入门

    原标题:Python零基础从零开始学习Python十分钟快速入门 学习Python的,都知道Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python是一种动态解释型的 ...

  5. springcloud gateway ribbon使用_Github点赞接近 70k 的Spring Cloud学习教程+实战项目推荐!牛批!...

    这篇文章继续来推荐 Spring Cloud 的教程和实战项目了!想必不用不多说,大家都知道 Spring Cloud 的重要程度.几乎稍微有点规模的公司,一般都离不开要和微服务打交道.同时,Spri ...

  6. 跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探

    SpringCloud系列教程 | 第十二篇:Spring Cloud Gateway初探 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如 ...

  7. Java web小项目_个人主页(1)—— 云环境搭建与项目部署

    摘自:Java web小项目_个人主页(1)-- 云环境搭建与项目部署 作者:丶PURSUING 发布时间: 2021-03-26 23:59:39 网址:https://blog.csdn.net/ ...

  8. 【Microsoft Azure 的1024种玩法】五十四. 十分钟快速上手创建部署Azure speech服务

    [简介] Azure语音服务是Microsoft提供稳定可靠的云通信服务,其在单个 Azure 订阅中统合了语音转文本.文本转语音以及语音翻译功能,我们可以通过各种方式(语音 CLI.语音 SDK.S ...

  9. 【最新最全】Java微服务实战项目【尚医疗】_智慧医疗管理项目_基于若依框架快速开发

    尚医疗是专门为各大医院.门诊提供的一款医疗管理平台.系统包含:系统管理.药品进销存管理.看病就诊.收费管理.检查管理.数据统计等核心模块.通过尚医疗系统可以快速.方便的管理病人从挂号到门诊结束所涉及到 ...

  10. Spring Cloud项目是如何读取bootstrap.properties文件的?

    提前说明:关于Spring Cloud和Spring Boot源码分析基于的版本如下所示 <!-- Spring Dependencies --> <dependency> & ...

最新文章

  1. Know about RDBMS market share
  2. visual c++ 6.0原版_C/C++编程笔记:C语言函数指针的理解与使用,就是这么简单明了!...
  3. [Hadoop in China 2011] 华为 - NoSQL/NewSQL在传统IT产业的机遇和挑战
  4. UIAlertAction添加输入框
  5. numpy 矩阵与向量相乘_高能!8段代码演示Numpy数据运算的神操作
  6. DevSecOps 现状:云 IT 的复杂度制造了“无法改变的”安全问题
  7. 对电机油冷分析_油冷电驱汇总(Tesla/Nidec/大众MEB/雪佛兰/华为)
  8. GDI绘制矩形缺少右边和底部边界线问题
  9. 浅谈PageHelper插件分页实现原理及大数据量下SQL查询效率问题解决
  10. 俄罗斯方块(C语言源代码)
  11. vrep中的运动规划(主要是针对机械臂)(未完)
  12. python分词工具
  13. 写了个算分压电阻阻值的MATLAB小程序
  14. excel 置信区间 计算_正态分布 excle(Excel中用什么函数可以算置信区间,怎么算啊?)...
  15. 微信企业号上传永久素材讲解与演示
  16. 服务器系统https打不开网页,记录一次解决网站突然无法打开处理HTTP被封的问题...
  17. Excel之动态数据分析报表
  18. 缺失值处理(Imputation)
  19. Latex002 | 详细教程:LaTeX 编译器哪个好?——如何在 Visual Studio Code 中全流程编写 LaTeX(上篇)
  20. HEVC Tile 编码器-kvazaar

热门文章

  1. win10系统的快捷键
  2. 如何修改搜索框中的cancel button的颜色
  3. Python学习笔记(2) Python提取《釜山行》人物关系
  4. iOS 日期(NSDate)的常用操作总结
  5. hdu 5402 Travelling Salesman Problem (技巧,未写完)
  6. 【Android 界面效果13】关于全屏和取消标题栏
  7. 应用jQuery实现表格数据的动态添加与统计
  8. 【NLP】综述 | 跨语言自然语言处理笔记
  9. 315页 A Tutorial on Graph Neural Networks for NLP
  10. AttributeError: ‘_thread._local‘ object has no attribute ‘value‘