spring官方gateway 软件开发定制定制选择学习的版本Doc
软件开发定制定制创建父子项目
1、软件开发定制定制第一步创建父模块,父模块导入pom
- <!--父模块打包方式pom-->
- <packaging>pom</packaging>
-
- <!--配置管理-->
- <properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <java.version>1.8</java.version>
- <spring-cloud-alibaba.version>2.2.8.RELEASE</spring-cloud-alibaba.version>
- <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
- </properties>
- <!--SpringBoot-->
- <parent>
- <groupId> org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.3.12.RELEASE</version>
- </parent>
-
- <!--SpringCloud 需要做版本的统一 官方地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E-->
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-alibaba-dependencies</artifactId>
- <version>${spring-cloud-alibaba.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-dependencies</artifactId>
- <version>${spring-cloud.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
2、第二步创建gateway服务,这个是gateway服务的pom
- <!--子模块打包方式pom-->
- <packaging>jar</packaging>
- <dependencies>
- <!--gateway的pom-->
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-gateway</artifactId>
- </dependency>
-
- <!--服务注册与发现-->
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
- </dependency>
-
- <!--nacos的配置-->
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
- </dependency>
- </dependencies>
3、第三步 注册到注册中心,有个nacos的教程
gateway服务的application.yml配置跟bootstrap.yml,好像可以不用配application.yml,springBoot启动会加载配置文件,只要配置了远程的,就可以不用配置这个application.yml
本地application.yml
- server:
- port: 7000
- spring:
- application:
- name: service-gateway
- cloud:
- nacos:
- discovery:
- server-addr: 127.0.0.1:8848 #Nacos注册中心地址
- gateway:
- discovery:
- locator:
- #开放服务名访问方式 true时候,可以使用地址 http://localhost:7000/service-wx/xler/wx/test1 就是直接可以通过服务名然后去定位controller地址进行访问
- #false就 只能 通过配置的路由进行访问
- enabled: false
- lower-case-service-id: true #服务名小写
- routes: #路由配置
- - id : wx #指定服务id,随便取,但是不能重复
- uri: lb://service-wx #去注册中心找这个服务名 后面这个就是服务的名字spring.application.name: service-gateway
- predicates: #断言,匹配访问的路径
- - Path=/gg/xler/wx/** #服务访问路径
- filters: #过滤
- - StripPrefix=1 #请求转发的时候会去掉 /gg访问路径 最终转发请求的服务地址:
- globalcors: #跨域配置
- cors-configurations:
- '[/**]':
- allowedOrigins:
- - "http://127.0.0.1:8081" #允许跨域
- - "http://127.0.0.1:8082"
- allow-credentials: true
- allowed-headers: "*"
- allowedMethods: #请求方式
- - GET
- - POST
- - DELETE
- - PUT
- - PATCH
- - OPTIONS
- - HEAD
- - CONNECT
- - TRACE
配置远程配置文件
- spring:
- main:
- allow-bean-definition-overriding: true #允许bean覆盖 我也不懂
- profiles:
- active: dev #环境
- cloud:
- nacos:
- discovery:
- enabled: true #开启服务注册发现
- server-addr: 127.0.0.1:8848 #nacos注册中心地址
- group: DEFAULT_GROUP #分组
- namespace: 4cfc2538-6811-4761-b3ce-2bcaa6b68d71 #命名空间
- username: nacos #nacos账户密码
- password: nacos
- ip: 127.0.0.1 #服务器地址
- config:
- enabled: true # 是否开启配置中心,默认true
- server-addr: 127.0.0.1:8848 #配置中心
- file-extension: yaml #配置文件格式
- prefix: xler-gateway #配置前缀 ,默认使用sring.application.name
- group: xler #配置分组
- namespace: 4cfc2538-6811-4761-b3ce-2bcaa6b68d71 #命名空间
4、第四步,创建启动类
@SpringBootApplication
@EnableDiscoveryClient 用于nacos的客户端的服务注册发现的注册
5、第五步,启动就完事了。就注册到nacos了
6、创建其他的服务,然后注册到nacos,通过网管去访问