bug-pom文件名字写错,导致文件名重复
解决办法-1.修改pom坐标,但是项目名字不会改变
2.重新在git上面拉取旧版本项目
bug:找不到或无法加载主类
方法一、将项目关掉,然后把项目中的.idea隐藏文件删除,重新打开idea软件,重新导入项目,然后就可以运行了~
方法二、
1、通过 Build---Rebulid Project
2、File--Invalidate Caches/Restart 选择Invalidate and Restart 等待项目重新启动就可以了,然后main方法就可以运行了
参考博主,原文链接:https://blog.csdn.net/TOP__ONE/article/details/105701543
Nacos服务注册:
1.启动nacos-server
2.将nacos依赖放入common公共模块的pom中
3.再将spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848【Nacos-server地址】添加到各模块yml中
4. 在各模块启动类上 使用@EnableDiscoveryClient 开启服务注册发现功能
成功注册服务
使用openfeign组件
/** * 远程调用: * 1.引入openfeign依赖 * 2.编写接口,放置远程服务的接口 * 3.开启远程调用功能 */
被调用的服务coupon类
主动调用的服务(声明远程接口,声明远程模块名+类名+方法名)
启动类开启远程调用功能:(路径下的接口都作为远程调用接口)
测试调用接口member类:
成功调用远程接口实现功能:
Nacos配置中心(可以动态修改配置文件)
/**
* Nacos动态配置:
* 1.引入依赖nacos-config
* 2.创建一个bootstrap.properties[配置服务模块名和nacos地址]
* 3.需要给配置中心默认添加数据集【Data id】yml/properties,添加相应配置
* 4.动态获取配置【controller类】
* @RefreshScope //刷新配置
* @value //获取配置
*
* 细节进阶:bootstrap配置
* 1)命名空间:隔离 默认public/区分模块(coupon/order)
* 2)配置集:所有配置的集合
* 3)配置集Id:Data ID:类似文件名
* 4)配置分组:Group/区分环境(dev/test)
*/
spring.application.name=liyumall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=3d7b12b6-7553-4814-b012-88fe07900d70
spring.cloud.nacos.config.group=DEFAULT_GROUP
配置多数据源:【将properties的内容解耦分到三个Data Id中,再由bootstrap读取】
原理:
实操:
=========application.yml===================
##配置mysql数据源+nacos服务地址+服务名
#spring:
# datasource:
# username: root
# password: root
# url: jdbc:mysql://192.168.56.10:3306/liyumall_sms
# driver-class-name: com.mysql.jdbc.Driver
# application:
# name: liyumall-coupon
# cloud:
# nacos:
# discovery:
# server-addr: 127.0.0.1:8848
##整合mybatis-plus+自增主键
#mybatis-plus:
# mapper-locations: classpath:/mapper/**/*.xml
# global-config:
# db-config:
# id-type: auto
#server:
# port: 7000
=======bootstrap.properties[解耦和读取]============
spring.application.name=liyumall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=3d7b12b6-7553-4814-b012-88fe07900d70
spring.cloud.nacos.config.group=DEFAULT_GROUP
#配置多数据源【将application.properties的配置解耦到nacos中】
spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true
spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true
Gateway网关使用:
三个核心概念:
路由。路由是网关最基础的部分,路由信息有一个 ID、一个目的 URL、一组断言和一组
Filter 组成。如果断言路由为真,则说明请求的 URL 和配置匹配
断言。Java8 中的断言函数。Spring Cloud Gateway 中的断言函数输入类型是 Spring5.0 框
架中的 ServerWebExchange。Spring Cloud Gateway 中的断言函数允许开发者去定义匹配
来自于 http request 中的任何信息,比如请求头和参数等。
过滤器。一个标准的 Spring webFilter。Spring cloud gateway 中的 filter 分为两种类型的
Filter,分别是 Gateway Filter 和 Global Filter。过滤器 Filter 将会对请求和响应进行修改
处理。
工作原理:
客户端发送请求给网关,弯管 HandlerMapping 判断是否请求满足某个路由,满足就发给网
关的 WebHandler。这个 WebHandler 将请求交给一个过滤器链,请求到达目标服务之前,会
执行所有过滤器的 pre 方法。请求到达目标服务处理之后再依次执行所有过滤器的 post 方
法。
一句话: 满足某些断言( (predicates) ) 就路由到指定的地址( (uri) ), , 使用指定的过滤器( (filter)。
编写网关服务:
#编写网关配置文件
# 各种 Predicates 同时存在于同一个路由时,请求必须同时满足所有的条件才被这个路由匹配。
# 一个请求满足多个路由的谓词条件时,请求只会被首个成功匹配的路由转发
spring:
cloud:
gateway:
routes:
- id: test_route
uri: https://www.baidu.com
filters: https://www.baidu.com
predicates:
- Query=url,baidu
- id: qq_route
uri: https://www.qq.com
predicates:
- Query=url,qq
还要排除数据库依赖:
出现bug:
解决办法:【排除相关依赖】
<!-- 引入网关依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </exclusion> </exclusions> </dependency>
最后还是没办法跳转页面,但是网关服务启动成功