快捷搜索:  汽车  科技

微服务后台管理:后台管理系统之微服务搭建

微服务后台管理:后台管理系统之微服务搭建2创建EurekaServer将所需要的依赖都导入pom文件中,子工程需要什么依赖直接能从父工程中引入。这些以前就接触过,算是做一个回顾。1创建父工程父工程:liuxiaoai,用来管理依赖及其版本,注意是创建project,而不是module。

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

感谢你的观看,谢谢你。

学习计划安排如下:

微服务后台管理:后台管理系统之微服务搭建(1)

继续后台管理系统的学习

  • 昨天是搭建了前端页面,今天开始后端微服务的搭建。
  • 基础微服务、商品微服务的搭建,本身还未涉及到具体的业务处理。
  • 其中有一个比较复杂的点在于自定义异常。
一、创建基本微服务

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

1创建父工程

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

微服务后台管理:后台管理系统之微服务搭建(2)

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

2创建EurekaServer

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

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

微服务后台管理:后台管理系统之微服务搭建(3)

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

②启动类上加注解

  • @EnableEurekaServer:开启Eureka服务端。
  • @SpringBootApplication:这是一个SpringBoot启动类。

③配置信息

  • 设置访问端口。
  • 设置应用的名称。
  • 设置eureka的地址。

3创建Zuul网关

微服务后台管理:后台管理系统之微服务搭建(4)

同样的还是三个步骤:

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

②启动类上加注解

  • @SpringBootApplication:这是一个SpringBoot应用。
  • @EnableDiscoveryClient:开启eureka客户端。
  • @EnableCircuitBreaker:开启熔断。

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

@EnableZuulProxy:开启网关

微服务后台管理:后台管理系统之微服务搭建(5)

③配置信息编写

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

二、创建商品微服务

将工程命名为:lxa-item。

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

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

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

微服务后台管理:后台管理系统之微服务搭建(6)

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

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

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

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

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

微服务后台管理:后台管理系统之微服务搭建(7)

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

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

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

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

三、通用工具模块

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

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

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

微服务后台管理:后台管理系统之微服务搭建(8)

它能完成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字符串
  • TypeReference<T> type:在传参时,需要传递TypeReference的匿名内部类,把要返回的类型写在TypeReference的泛型中,则返回的就是泛型中类型

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

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

最后

谢谢你的观看。

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

猜您喜欢: