新手向,十分钟快速创建 Spring Cloud 项目
本文为新手向教程,帮助大家快速入门 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/
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://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 ,通过引导,在脚手架中创建自己的项目,导入到开发工具中,感兴趣的同学可以去试下。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
12月24日云栖号头条:边缘计算是下一个5G时代的机会和风口吗?
云栖号:https://www.aliyun.com/#module-yedOfott8第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 今日最新云头条快讯:众所周知,中国是5G能力发展最快的国家之一,预计2025年5G用户渗透率为48%;今年,网络强国建设取得扎实进展;AI实质上是一门会产生重大意义的技术,即使是电话营销也应“善用”,而想要治理泛滥AI骚扰电话,还需AI技术本身。一起来看最新的资讯: 工信部:力争2020年底实现全国所有地级市覆盖5G网络 今年网络强国建设取得扎实进展,包括:正式启动5G商用,全国开通5G基站12.6万个;超额完成网络提速降费年度任务,“携号转网”全国实行,IPv6基础设施全面就绪;扎实推进电信普遍服务试点;精心组织农村宽带网络专项整治;整治骚扰电话、清理“黑宽带”、打击“黑广播”“伪基站”和App侵害用户行为等取得明显成效。力争2020年底实现全国所有地级市覆盖5G网络,优化提升网络供给质量,深化电信普遍服务,重点支持边疆和偏远地区网络深度覆盖。 5G风口到来,边缘计算引领数据中心变革 中国是5G...
- 下一篇
259年后,中国最大的皇家园林上云了
它是中国目前规模最大、保存最完整的皇家园林,被誉为“皇家园林博物馆”: 它有古典园林中的“世界第一廊”,全长728米,273间,彩绘趣事遍布其中: 259年前,乾隆的一次大手笔,造就了中国园林艺术的巅峰之作——颐和园。 259年后的今天,颐和园宣布与阿里云携手,用技术将这所皇家园林打造为智慧景区。阿里云将提供云计算、物联网等技术,助力公园智能服务建设,游客体验和数字化运营的升级。 根据国家旅游局预计,未来十年,我国文旅市场规模将达到 30万亿-50万亿元,科技创新正在成为文旅产业发展的新动能。阿里云将帮助推进颐和园的智能客服、智慧导览、文创商城等公众服务,构建和完善物联网平台、景区可视化等一系列数字化运营模式。 有了云计算的颐和园,你希望会有哪些新变化?快来告诉小云~
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果