首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【微服务】141:后台管理系统微服务搭建

今天是刘小爱自学Java的第141天。

感谢你的观看,谢谢你。

学习计划安排如下:

继续后台管理系统的学习

昨天是搭建了前端页面,今天开始后端微服务的搭建。

基础微服务、商品微服务的搭建,本身还未涉及到具体的业务处理。

其中有一个比较复杂的点在于自定义异常。

一、创建基本微服务

这些以前就接触过,算是做一个回顾。

1创建父工程

父工程:liuxiaoai,用来管理依赖及其版本,注意是创建project,而不是module。

将所需要的依赖都导入pom文件中,子工程需要什么依赖直接能从父工程中引入。

2创建EurekaServer

注册中心,起名为:lxa-registry,直接创建maven项目,自然会继承父类的依赖。

注意是在父工程的基础上新建module:

引入依赖:最核心的依赖eureka服务端。

启动类上加注解

@EnableEurekaServer:开启Eureka服务端。

@SpringBootApplication:这是一个SpringBoot启动类。

配置信息

设置访问端口。

设置应用的名称。

设置eureka的地址。

3创建Zuul网关

同样的还是三个步骤:

引入依赖:eureka客户端和zuul启动器。

启动类上加注解

@SpringBootApplication:这是一个SpringBoot应用。

@EnableDiscoveryClient:开启eureka客户端。

@EnableCircuitBreaker:开启熔断。

其中该三个注解可以合并成一个注解:@SpringCloudApplication。

@EnableZuulProxy:开启网关

配置信息编写

zuul配置文件较为复杂,涉及到了一个熔断和负载均衡,这个一般来说,很难自己独立记下来,所以最好的方式就是copy模板。

二、创建商品微服务

将工程命名为:lxa-item。

需要注意的是,lxa-item是一个微服务,那么将来肯定会有其它微服务需要来调用,会使用到其中的实体类。

因此这里使用聚合工程,将具体的业务处理及其相关实体类放到独立子工程中:

在lxa-item中创建两个子工程:

lxa-item-pojo:主要是相关实体类。

lxa-item-service:所有业务逻辑的处理。

这样的好处在于,如果其它的微服务要调用当前微服务,怎么办?

直接引入需要的子工程依赖就好了。

一样的也是核心三步骤:依赖引入,启动类上加注解,以及配置文件:

配置访问端口,服务名称,连接池……等。

启动后直接访问8081端口就可以了。

但是既然有网关,在网关中添加路由规则,我们不使用默认的路由规则。

具体配置规则就是在访问路径中加入item,这就相当于在商品微服务本身的访问路径上加了一层保护。

三、通用工具模块

有些工具或通用的内容,各个服务都能用,因此需要创建通用模块:lxa-common。

典型例子就是工具类的使用,引入工具类并导入对应依赖即可。

其中有一个json工具类做个说明。

它能完成json数据与Java中的数据类型的各种转换,里面包含四个方法:

toString方法:把一个对象序列化为String类型,包含1个参数。

Object obj:原始java对象

toList方法:把一个json反序列化为List类型,需要指定集合中元素类型,包含两个参数:

String json:要反序列化的json字符串

ClasseClass:集合中元素类型

toMap方法:把一个json反序列化为Map类型,需要指定集合中key和value类型,包含三个参数:

String json:要反序列化的json字符串

Class kClass:集合中key的类型

Class vClass:集合中value的类型

nativeRead方法:当反序列化的结果比较复杂时,通过这个方法转换,参数:

String json:要反序列化的json字符串

TypeReferencetype:在传参时,需要传递TypeReference的匿名内部类,把要返回的类型写在TypeReference的泛型中,则返回的就是泛型中类型

上述方法基本都是见名知义的。

此外在该模块中还需要完成异常的处理,操作起来有点麻烦,后续接着学习。

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200831A02MYJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券