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

下面我们学习如何快速搭建一个 Spring Cloud 工程,示例使用 Spring Boot 2.2.2 版本,使用少量的代码,可以在半小时内完成项目的搭建。

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

一、创建一个新工程

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: 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/

  

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: 8765 spring:
application:
name: eureka-producer eureka:
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: 8763 spring:
application:
name: eureka-consumer eureka:
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
@LoadBalanced
RestTemplate 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 { @Autowired
RestTemplate restTemplate; @RequestMapping("greet")
public String sayHello(@RequestParam String name){ return restTemplate.getForObject("http://EUREKA-PRODUCER/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 ,通过引导,在脚手架中创建自己的项目,导入到开发工具中,感兴趣的同学可以去试下。

十分钟快速创建 Spring Cloud 项目的更多相关文章

  1. 使用Spring Initializer快速创建Spring Boot项目

    目录结构 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目:选择我们需要的模块:向导会联网创建Spring Boot项目:默认生成的Spring Boot项目: 主程序 ...

  2. Spring Boot-初学01 -使用Spring Initializer快速创建Spring Boot项目 -@RestController+spEL -实现简单SpringBoot的Web页面

    1.IDEA:使用 Spring Initializer快速创建项目 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目: 选择我们需要的模块:向导会联网创建Spring ...

  3. Intellij IDEA 快速创建Spring Web 项目

    相关软件: Intellij Idea14:http://pan.baidu.com/s/1nu16VyD JDK7:http://pan.baidu.com/s/1dEstJ5f Tomcat(ap ...

  4. 二、Spring Boot系列:Spring Initializer快速创建Spring Boot项目

    1.点击创建新工程 2.选择Spring Initializer和jdk1.8 注意:项目名称要小写字母 3.现在只需要一个创建一个web,选择一个就好 4.没有用的文件,可以删除 5.pom.xml ...

  5. 快速创建Spring web项目

    第一步,把包和文件夹建好 第二步.pom文件添加依赖 放到properties标签内 <spring_version>4.1.2.RELEASE</spring_version> ...

  6. jboss developers studio 快速创建 spring mvc 项目

    1. 2. 部署运行 还有一个 rest very good !! ps:其实就是 一个 jboss 的 spring mvc maven 原型

  7. Spring Boot-使用Spring Initializer快速创建Spring Boot项目

    File->project->Spring Initializer 点击next 点击下一步即可,如果是第一次可能需要下载jar包,如下图 resources文件中的目录结构如上图所示 s ...

  8. 5分钟学会如何创建spring boot项目

    上一篇博客说了如何创建spring boot项目,但是有些同学会觉得有点麻烦,有没有什么快速学会能快速创建spring boot项目的方法,答案是肯定的.接下来我们就一起来快速创建一个spring b ...

  9. 创建Spring Cloud聚合项目

    使用maven创建单一项目的时候通常用不到聚合项目,创建spring cloud项目时候,由于下面都是一个一个微服务,每个服务对应一个项目,这就需要用到聚合项目,方便对依赖和项目之间的关系进行管理,使 ...

随机推荐

  1. fdconnection自动重连

    fdconnection自动重连 1)设置 FDConnection1.ResourceOptions.AutoReconnect := True; 控制自动连接的恢复. 使用AutoReconnec ...

  2. laravel修改了配置文件不生效,修改了数据库配置文件不生效

    Laravel缓存配置文件,因此您可能只需要清除缓存: php artisan config:clear 转: http://www.voidcn.com/article/p-sgcusrjp-bxw ...

  3. sql中order by和group by的区别

    order by 和 group by 的区别: 1,order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. 2,group b ...

  4. GIS地理工具案例教程——批量去除多边形的之间的间隙

    GIS地理工具案例教程--批量去除多边形的之间的间隙 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 问题:几乎所有的手工生产的数据,都存在多边 ...

  5. linux下终端字体彩色显示

     linux下python彩色显示   跨平台彩色显示库https://pypi.python.org/pypi/colorama   jlive@MacBook-Pro:py_demo $pytho ...

  6. GPRS以TCP上传数据到服务器OK,但收不到服务器下发的数据

    GPRS以TCP上传数据到服务器OK,但收不到服务器下发的数据 基站漂移是DTU很常见的连接故障,一个DTU所处的地方可能会有多个基站信号,时间久了,可能会在不同的基站之间切换,它会更新自己的连接,发 ...

  7. Vscode 调试 Flutter 项目

    1.Vscode 中打开 flutter 项目进行开发 2.运行 Flutter 项目 flutter run r 键:点击后热加载,也就算是重新加载吧. p 键:显示网格,这个可以很好的掌握布局情况 ...

  8. Influxdb修改数据保留策略

    retention policy: 存储策略,用于设置数据保留的时间,每个数据库刚开始会自动创建一个默认的存储策略 autogen,数据保留时间为永久,之后用户可以自己设置,例如保留最近2小时的数据. ...

  9. SVN还原项目到某一版本(转)

    将本地的项目通过SVN还原到某一版本,并将SVN服务器上的项目也还原到这一版本 第一步:新建一个文件夹,如test,选中test右键-checkout到最新版本 第二步:选中test,右键-Torto ...

  10. Python中利用原始套接字进行网络编程的示例

    Python中利用原始套接字进行网络编程的示例 在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互. 因此想使用原始套接字进行编程,直接构 ...