美文网首页
【微服务】141:后台管理系统微服务搭建

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

作者: 刘小爱 | 来源:发表于2020-09-16 17:21 被阅读0次

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

    感谢你的观看,谢谢你。

    image

    学习计划安排如下:

    • 继续后台管理系统的学习

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

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

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

    一、创建基本微服务

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

    1创建父工程

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

    image

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

    2创建EurekaServer

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

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

    image

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

    ②启动类上加注解

    • @EnableEurekaServer:开启Eureka服务端。

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

    ③配置信息

    • 设置访问端口。

    • 设置应用的名称。

    • 设置eureka的地址。

    3创建Zuul网关

    image

    同样的还是三个步骤:

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

    ②启动类上加注解

    • @SpringBootApplication:这是一个SpringBoot应用。

    • @EnableDiscoveryClient:开启eureka客户端。

    • @EnableCircuitBreaker:开启熔断。

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

    @EnableZuulProxy:开启网关

    image

    ③配置信息编写

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

    二、创建商品微服务

    将工程命名为:lxa-item。

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

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

    image

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

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

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

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

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

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

    image

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

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

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

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

    三、通用工具模块

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

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

    image

    其中有一个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字符串

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

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

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

    最后

    谢谢你的观看。

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

    相关文章

      网友评论

          本文标题:【微服务】141:后台管理系统微服务搭建

          本文链接:https://www.haomeiwen.com/subject/jfspsktx.html