今天是刘小爱自学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的泛型中,则返回的就是泛型中类型
上述方法基本都是见名知义的。
此外在该模块中还需要完成异常的处理,操作起来有点麻烦,后续接着学习。
最后
谢谢你的观看。
如果可以的话,麻烦帮忙点个赞,谢谢你。
网友评论