json schema生成工具_SpringCloud快速构建分布式系统的工具集(全家桶)-程序员宅基地

技术标签: json schema生成工具  

一、开始使用Spring Cloud实战微服务

1、SpringCloud是什么?

云计算的解决方案?不是

SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具集(全家桶)。

SpringCloud拥有SpringBoot的特点。

2、关于SpringCloud的版本?

大部分spring软件的版本是以:主版本.次版本.增量版本.里程碑版本的形式命名。

Spring Cloud Angel SR6???

Angel是SpringCloud的一个大版本,Service Release6版本,标识一个bug修复的版本。

3、SpringCloud的特点?

1)、约定优于配置

2)、开箱即用、快速启动

3)、适用于各种环境(PC Server、云环境、Subtopic、容器Docker)

4)、轻量级的组件(如服务发现中整合的Eureka)

5)、组件支持很丰富、功能很齐全(如提供配置中心、注册中心、智能路由…)

6)、选型中立(服务发现中使用Eureka、Zookeeper、Consul等都可以)

二、需要的技术储备

1、java(scala、Groovy…均可)

2、构建工具

1)、Maven

2)、Gradle

将maven项目转换成gradle项目:(在pom文件的上一级目录执行如下命令,使用cmd操作)

gradle init --type pom

3)、SpringBoot:http://cnblogs.com/mmzs/category/1192166.html

三、使用的软件版本

1、原则:使用最新的版本进行讲解

2、JDK 1.8

3、Maven 3.3.9

4、IDE(Spring Tool Suite 3.8.2、IDEA、Eclipse)

5、Spring Boot

6、SpringCloud Camden SR1

建议:大家学习时,尽量使用相同的版本进行选择,避免采坑

四、创建工程

1、创建调用关系的微服务

创建存在调用关系的微服务,调用关系如下

302d2181aa7bae558f566072b9c73c38.png

服务消费者:服务的调用方,调用别的微服务的微服务(即:依赖其他服务的服务)

服务提供者:服务的被调用方,提供API的微服务(即:为其他服务提供服务的服务)

2、编写一个服务提供者

登陆:http://start.spring.io/

填写信息:

5301a41494f0b1136f27960ed1f49cfb.png

(1)、将生成的maven工程导入eclipse

然后一次创建如下选中的类和配置文件。

2afa94114f7353d447eda781bdf73f3c.png

(2)、data.sql和schema.sql

data.sql

schema.sql

(3)、配置文件application.yml

schema.sql

(4)、创建UserController

UserController

(5)、创建UserRepository

UserRepository

(6)、创建实体类User

User

注:此处采用的是jpa,使用的是h2数据库,如果访问时出现实体类转化json格式错误,则需要在实体类前面加上如下这句注释:

@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })

错误提示:disable SerializationFeature.FAIL_ON_EMPTY_BEANS

(7)、执行MicroserviceSimpleProviderUserApplication类,然后进行访问测试

053181262afe51533169f916019e28cf.png

3、编写一个服务消费者

登陆:http://start.spring.io/

填写信息:

c05a666002b9a72287c6745082677bc8.png

(1)、将生成的maven工程导入eclipse

然后一次创建如下选中的类和配置文件。

c88a6912d8da2bbbeea5c26253f0457f.png

(2)、配置文件application.yml

server:

port: 6901

(3)、创建GoodsController

GoodsController

(4)、创建实体类User

User

(5)、在MicroserviceSimpleConsumerGoodsApplication类中注入Bean

其中11-16行表示注入的Bean

MicroserviceSimpleConsumerGoodsApplication

(5)、执行MicroserviceSimpleConsumerGoodsApplication类,然后进行访问测试

589f0730a484692f18b69dd6ab61111d.png

4、小小优化一下

主要优化的点是在GoodsController类中的硬编码部分。简单优化如下:

@RestController

public class GoodsController {

@Autowired

private RestTemplate restTemplate;

//优化部分

@Value("${user.userServicePath}")

private String userServicePath;

//优化后此处的硬编码字符串,修改为变量获取

@GetMapping("/goods/{id}")

public User findById(@PathVariable Long id) {

//采用了硬编码注册user服务

return this.restTemplate.getForObject(this.userServicePath + id, User.class);

}

}

这样子的话,userServicePath的具体值需要通过配置文件application.yml来配置,故application.yml文件修改为:

server:

port: 6901

# 优化部分

user:

userServicePath: http://localhost:6900/user/

注: 其实这样子的优化也不是很好,因为当微服务过多时,层层调用,需要修改的部分也会越来越多,不便于维护和修改。具体措施,详见下回分解。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39676242/article/details/110792939

智能推荐

GCC编译及GDB调试_编译gcc gdb-程序员宅基地

文章浏览阅读737次。目录前言一、GCC编译1.编译链接流程二、使用步骤1.引入库2.读入数据总结前言记录GCC和GDB的学习笔记一、GCC编译1.编译链接流程以File.c为例子File.i : 经过编译预处理的源代码;File.s : 汇编处理后的汇编代码;File.o : 编译后的目标文件,即含有最终编译出的机器码,但它里面所引用的其他文件中函数的内存位置尚未定义File.out:可执行文件C源程序头文件-->预编译处理(cpp)-->编译程序-->优化程序-->汇编程_编译gcc gdb

contest12 CF514div2 ooxxx oooox ooooo-程序员宅基地

文章浏览阅读1.3k次。未写转载于:https://www.cnblogs.com/ikihsiguoyr/p/10372635.html

决策表,决策树_决策表 决策树-程序员宅基地

文章浏览阅读293次。决策表决策表 - 百度百科决策表又称判断表,是一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式,将多个条件与这些条件满足后要执行动作相对应。但不同于传统程序语言中的控制语句,决策表能将多个独立的条件和多个动作直接的联系清晰的表示出来决策树决策树 - 百度百科决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运_决策表 决策树

【论文解读】语义分割&医学图像分割论文合集-程序员宅基地

文章浏览阅读4k次,点赞18次,收藏171次。description: 整理自己看过和待看的一些主要关于图像分割包括其他领域的论文,不定时更新…综述篇Deep learning for cardiac image segmentation: A review [2019]Deep Semantic Segmentation of Natural and Medical Images: A Review [2019]Understanding Deep Learning Techniques for Image Segmentation

iOS 上通过 802.11k、802.11r 和 802.11v 实现 Wi-Fi 网络漫游-程序员宅基地

文章浏览阅读848次。在 iOS 上通过 802.11k、802.11r 和 802.11v 实现 Wi-Fi 网络漫游了解 iOS 如何使用 Wi-Fi 网络标准提升客户端漫游性能。iOS 支持在企业级 Wi-Fi 网络上对客户端漫游进行优化。802.11 工作组标准 k、r 和 v 可让客户端在同一网络内更加顺畅地从一个接入点 (AP) 漫游到另一个接入点。802.11k通过创建优..._11v漫游流程 csdn

随便推点

就这样我成了一名程序员_flyfish365-程序员宅基地

文章浏览阅读1.6k次。 6月份,毕业了,炎炎夏日加上几只属苍蝇的知了,我知道这些并不是自己心里烦躁的理由,长吸一口气,我的未来在哪里?问题找到了,但答案在哪里? 宿舍的几位同僚,义无反顾的整理好皮箱奔向大城市去打天下,送走他们,告别已经分手的女朋友,拿着自己的三证和一堆宝贝技术书籍,决定先回家。 家里永远都是最温暖的,回家后第一次见到我刚出生几个月的外甥,这小子可爱极了,老乐呵_flyfish365

【u-boot-2015.10源码分析】board_r.c_config_board_early_init_r-程序员宅基地

文章浏览阅读1.7k次。文章链接:https://blog.csdn.net/q_z_r_s机器感知一个专注于SLAM、机器视觉、Linux 等相关技术文章分享的公众号/* 最终进入命令解析模式 */DECLARE_GLOBAL_DATA_PTR;ulong monitor_flash_len;static int run_main_loop(void){#ifdef CON..._config_board_early_init_r

python计算机毕设【附源码】毕业设计选题管理系统(django+mysql+论文)-程序员宅基地

文章浏览阅读280次,点赞4次,收藏3次。通过使用前端技术HTML+CSS+JavaScript+Vue,后端技术Java+SSM,数据库MySQL5.7,以及开发工具Eclipse或IntelliJ IDEA,Tomcat7.0,JDK1.8,Maven3.3.9,可以实现一个功能完善、操作简便的毕业设计选题管理系统。在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。

图解通信原理与案例分析-17:2G GPRS通用分组无线业务详解_2g slot-程序员宅基地

文章浏览阅读4.7k次。先占个空,以后再详细拆解主要关注与GSM的区别,特别是GRPS是如何通过增加信道和分组交换系统支持数据传输,如何通过新的调制解调技术,增加数据传输的速率的!1. GSM是全球移动通讯系统(Global System for Mobile Communications)的简称2. GPRS是通用分组无线业务(General Packet Radio Service)的简称3. GPRS是在GSM系统基础上发展起来的分组数据承载和传输业务。4. GPRS与GSM......_2g slot

【图像拼接】论文精读:Natural Image Stitching Using Depth Maps-程序员宅基地

文章浏览阅读10w+次。图像拼接系列相关论文精读Seam Carving for Content-Aware Image ResizingAs-Rigid-As-Possible Shape ManipulationAdaptive As-Natural-As-Possible Image StitchingShape-Preserving Half-Projective Warps for Image StitchingSeam-Driven Image StitchingParallax-tolerant Ima_natural image stitching using depth maps

【Java基础知识 11】java泛型方法的定义和使用-程序员宅基地

文章浏览阅读1.6w次,点赞131次,收藏52次。一、基本介绍Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。二、提出背景Java集合(Collection)中元素的类型是多种多样的。例如,有些集合中的元素是Byte类型的,而有些则可能是String类型的,等等。Java允许程序员构建一个元素类型为Object的Collection,其中的元素可以是任何类型在Java S._java基础

推荐文章

热门文章

相关标签