这次用到的spring组件nacos fegin gateway 完全适合生产开发!!!

1.所用版本

1.准备 springcloud alibaba:2021.0.4

2.springboot :2.7.2:release

3.springcloud:sr8

随便添加一个springboot版本

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java

2.删除自己原有的spring版本 全部交给管理依赖统一管理

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_02

2.添加2.添加依赖 springcloud-alibaba、spingboot、springcloud管理依赖 (后续不再需要添加版本配置) 

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring cloud_03

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_04

 2.添加子项目来被父工程所管理(我这里创建了两个子项目了 order-service和user-service)

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring_05

 分别给他们添加web的运行依赖

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring cloud_06

 添加启动类 这样子项目就搭建完成了

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring_07

 成品这样 父类的启动类我们用不着就可以删掉

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_08

 2.配置nacos 让各个服务能够被注册发现

1.因为前面我们添加了管理依赖 我们这里就只用给子项目添加nacos依赖 不用再选择版本了 

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_09

 2.添加依赖之后 application.yaml用不着了 可以删除了 然后创建bootstrap.yml配置文件如下配置

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_10

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring cloud_11

 启动服务后如果出现Param ‘serviceName‘ is illegal, serviceName is blank springboot在高版本下没有读到bootstrap 子服务需要添加依赖

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_12

 启动项目 登录nacos发现服务已经能被nacos发现了

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring boot_13

 要想配置文件能够在nacos读取配置需要给自服务添加nacos客户端依赖

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_14

 创建命名空间 dev

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring boot_15

 没添加命名空间就是默认读取public 添加命令空间读取的是对应的环境

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_16

public环境 写个配置 来尝试是否能够读取到配置

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_17

dev配置

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_18

 

简单定义一个接口

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring boot_19

1.发现能够读取 证明nacos的配置已经被读取到了

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_20

dev写个配置 加上时分秒然后发现(证明我的命名空间生效了环境也能随意切换了)

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_21

 

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring_22

 

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring cloud_23

这里nacos就全部配置完成了

2.配置fegin 让各个服务能够调用

1.子项目添加依赖feign依赖和负载平衡依赖

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_24

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring cloud_25

 2.启动类添加fegin开关

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_26

 这里user-service准备去调用order-service接口 

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_27

 写个调用接口 

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_28

成功了证明基本的fegin已经能够使用了

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_29

 fegin性能优化实现连接数自定义

1.添加依赖(高可用)

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring boot_30

 2.添加依赖

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_31

 有了这个就证明配置成功

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring_32

为了以后规范 我们现在把fegin调用的接口单独抽取到一个包里 这里我们创建一个新maven模块

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_33

 全部拷过去

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_34

 引入依赖

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_35

 添加fegin所在包名

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_java_36

 这里fegin就配置成功了

3.配置springgateway来管理资源路径

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring_37

网关服务引入依赖(nacos注册依赖 )

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring boot_38

 添加配置文件

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_39

 spring提供的断言规则这里我们使用的是路径规则

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring_40

1.设置全局过滤器 只有携带了token并且为admin才能访问否则被拦截并返回状态码401

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring_41

 2.这里报了401证明拦截器生效了

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_spring_42

这里携带token就能访问了

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_43

 

 

2.配置跨域问题(这里根据情况照搬就行了)

springcloud alibaba项目 简历 spring cloud alibaba项目搭建_微服务_44

致辞能适用于生产的springcloud-alibaba就完全搭建好了!!!!