新手向,十分钟快速创建 Spring Cloud 项目

简介: 本文为新手向教程,帮助大家快速入门 Spring Cloud 开发,也作为「跟我学 Spring Cloud Alibaba」系列的补充文章

本文为新手向教程,帮助大家快速入门 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: 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/
AI 代码解读

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 # 指定服务注册中心
AI 代码解读

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

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

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
AI 代码解读

创建 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 # 指定服务注册中心
AI 代码解读

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();
    }

}
AI 代码解读

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://service-hello/sayHello?param=" + name, String.class);
    }
}
AI 代码解读

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

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

总结

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

目录
打赏
0
1
0
0
383
分享
相关文章
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
本文介绍了Spring Boot开发环境的搭建和项目启动流程。主要内容包括:jdk的配置(IDEA、STS/eclipse设置方法)、Spring Boot工程的构建方式(IDEA快速构建、官方构建工具start.spring.io使用)、maven配置(本地maven路径与阿里云镜像设置)以及编码配置(IDEA和eclipse中的编码设置)。通过这些步骤,帮助开发者顺利完成Spring Boot项目的初始化和运行准备。
43 0
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——少量配置信息的情形
本课主要讲解Spring Boot项目中的属性配置方法。在实际开发中,测试与生产环境的配置往往不同,因此不应将配置信息硬编码在代码中,而应使用配置文件管理,如`application.yml`。例如,在微服务架构下,可通过配置文件设置调用其他服务的地址(如订单服务端口8002),并利用`@Value`注解在代码中读取这些配置值。这种方式使项目更灵活,便于后续修改和维护。
16 0
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
46 0
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
27 0
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——少量配置信息的情形
在微服务架构中,随着业务复杂度增加,项目可能需要调用多个微服务。为避免使用`@Value`注解逐一引入配置的繁琐,可通过定义配置类(如`MicroServiceUrl`)并结合`@ConfigurationProperties`注解实现批量管理。此方法需在配置文件中设置微服务地址(如订单、用户、购物车服务),并通过`@Component`将配置类纳入Spring容器。最后,在Controller中通过`@Resource`注入配置类即可便捷使用,提升代码可维护性。
18 0
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
93 7
【Spring项目】表白墙,留言板项目的实现
本文主要介绍了表白墙项目的实现,包含前端和后端代码,以及测试
【Spring】——SpringBoot项目创建
SpringBoot项目创建,SpringBootApplication启动类,target文件,web服务器,tomcat,访问服务器
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
61 6

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等