SpringGateway(网关)微服务

一.启动nacos

1.查看linux的nacos是否启动

docker ps

2.查看是否安装了nacos

前面是你的版本,后面的names是你自己的,我们下面要启动的就是这里的名字。

 docker ps -a

3.启动nacos并查看是否启动成功

二.创建网关项目

1.创建idea的maven项目

 

 

 2.向pom.xml文件里添加依赖

 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version></parent><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version><jwt.version>0.7.0</jwt.version><fastjson.version>1.2.60</fastjson.version><spring-cloud-alibaba.version>2.0.3.RELEASE</spring-cloud-alibaba.version><spring-cloud.version>Finchley.SR2</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><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></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration></plugin></plugins></build>

3.创建启动类

package com.jr;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringBootMain {public static void main(String[] args) {SpringApplication.run(SpringBootMain.class,args);}
}

如果导入别人的项目,依赖是有传递性的这样你的项目里依赖的中间件就会很多,可以通过exclude属性排除掉。这样其他的中间件就不会启动了。
@SpringBootApplication(exclude = {XXXX.class, YYYY.class}) 

网关是一个非常干净的工程,不会添加其它中间件的配置,所以网关工程里只有一个Application的启动类和配置文件。启动类的注解@SpringBootApplication注解中可能开启的其它中间件的@EnableXXX,可以把其它中间件的注解排除掉,保证网关只启动自己的应用,只完成网关功能。

 4.创建bootstrap.yml配置文件

spring:cloud:nacos:discovery:server-addr: 192.168.130.39:8848config:server-addr: 192.168.130.39:8848inetutils:preferred-networks: 192.168.116

下面这个看我另一个博客在idea使用nacos微服务-CSDN博客

 

5.创建application.properties配置文件  


##设置项目的注册名
spring.application.name=gateway   ##设置项目的端口号  以上两个设置放在同一个配置文件里。
server.port=300

6.在resources创建一个index.html页面(一定要是index.html界面哈)

还有得先建立一个static或者public包,把index.html放里面

 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>index.html页面</h1>
</body>
</html>

 7.启动idea项目

启动结果: 

三.配置网关 

1.向pom.xml里添加部分依赖

先把下面代码的依赖删了,网关不需要前端了,所以要去除web依赖。

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

 否则会出现下面的错误

记得别放<dependencyManagement></dependencyManagement>这个标签去了

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><scope>compile</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>

2.在resources中创建application.yml文件

这注意要在resources右键建立,别在文件里创建application.yml,之前创建的resources下的两个配置文件也是这样,一定在resoures外面。

这里我把public文件夹收起来了(如果为来有多个文件夹,全部收起来),但是外面的三个配置文件还在外面,他三个必须在外面。

这里拿百度举例吧

 - id: baidu_route(路由id唯一,是一个数组,可以配置多个路由)
           uri: https://www.baidu.com(路由到的地址)
           predicates:(断言)
             - Query=url, baidu(如果存在url和baidu,那么跳转到uri地址)

spring:cloud:gateway:routes:- id: baidu_routeuri: https://www.baidu.compredicates:- Query=baidu

 3.启动idea项目

自己浏览器地址栏输入下面

跳转成功,http://localhost:300/baidu不会跳转到百度,http://localhost:300/baidu?baidu才会跳转到百度,是根据参数做断言。

四.我的项目结构

这里就结束了,这是我的项目结构,希望能帮到大家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/55207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware 虚拟机 下载安装 Centos7 和Windows10 镜像源

准备工作 下载 VMware链接&#xff1a;稍后发布链接 Centos7完整版链接&#xff1a;https://www.123865.com/ps/EF7OTd-mdAnH Centos7mini版链接&#xff1a;https://www.123865.com/ps/EF7OTd-1dAnH Windows10链接&#xff1a;https://www.123865.com/ps/EF7OTd-4dAnH 演示环境…

【Git】一文看懂Git

Git 一、简介1. Git 与 SVN 区别1.1 Git 是分布式的&#xff0c;SVN 不是1.1.1 分布式版本控制系统Git1.1.2 集中式版本控制系统SVN 1.2 Git 把内容按元数据方式存储&#xff0c;而 SVN 是按文件1.3 Git 分支和 SVN 的分支不同1.4 Git 没有一个全局的版本号&#xff0c;而 SVN …

CS 工作笔记:SmartEdit 里创建的是 CMS Component

下图是在 SmartEdit 里创建的 cms Component&#xff0c;在 Back-Office 里的截图&#xff1a; SAP Commerce Cloud 的 CMS Component 是其内容管理系统 (CMS) 的核心组成部分&#xff0c;它提供了对在线商店或平台内容的灵活管理。通过这些组件&#xff0c;用户能够在不涉及复…

C# 字符串(String)的应用说明一

一.字符串&#xff08;String&#xff09;的应用说明&#xff1a; 在 C# 中&#xff0c;更常见的做法是使用 string 关键字来声明一个字符串变量&#xff0c;也可以使用字符数组来表示字符串。string 关键字是 System.String 类的别名。 二.创建 String 对象的方法说明&#x…

Java研发笔记4——C语言程序设计学习笔记3

我们继续第二模块初识C语言的学习&#xff0c;上一篇笔记当中我们详细讲解了什么是C语言 以及第一个C语言程序。本篇笔记中我们继续从数据类型开始学习&#xff0c;后面的内容还包括&#xff1a;数据类型 、变量与常量 、字符串转义字符注释 、选择语句 、循环语句 、函数 、数…

Spark SQL分析层优化

导读&#xff1a;本期是《深入浅出Apache Spark》系列分享的第四期分享&#xff0c;第一期分享了Spark core的概念、原理和架构&#xff0c;第二期分享了Spark SQL的概念和原理&#xff0c;第三期则为Spark SQL解析层的原理和优化案例。本次分享内容主要是Spark SQL分析层的原理…

亚马逊 Bedrock 平台也能使用Llama 3.2 模型了

亚马逊 Bedrock 平台推出 Llama 3.2 模型&#xff1a;多模态视觉和轻量级模型 概述 由 Meta 提供的最新 Llama 3.2 模型现已在 Amazon Bedrock 平台上推出。这一新模型系列标志着 Meta 在大型语言模型&#xff08;LLM&#xff09;领域的最新进展&#xff0c;它在多种应用场景…

Java Web 之 Session 详解

在 JavaWeb 开发中&#xff0c;Session 就像网站的专属记忆管家&#xff0c;为每个用户保管着重要的信息和状态&#xff0c;确保用户在网站的旅程顺畅无阻。 场景一&#xff1a; 想象你去一家大型超市购物&#xff0c;推着购物车挑选商品。这个购物车就如同 Session&#xff…

本地访问autodl的jupyter notebook

建立环境并安装jupyter conda create --name medkg python3.10 source activate medkg pip install jupyter 安装完成后&#xff0c;输入jupyter notebook --generate-config 输入ipython,进入python In [2]: from jupyter_server.auth import passwd In [3]: passwd(algori…

Spring Data(学习笔记)

JPQL语句&#xff1f;&#xff1f;&#xff1f;&#xff08;Query括号中的就是JPQL语句&#xff09; 怎么又会涉及到连表查询呢&#xff1f; 用注解来实现表间关系。 分页是什么&#xff1f;为什么什么都有分页呢 &#xff1f; 继承&#xff0c;与重写方法的问题 Deque是什么 ?…

在Ubuntu 14.04上安装带SSL的Webmin的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Webmin 是一个基于 Web 的类 Unix 系统管理工具。它提供了一个简单的替代方案来进行命令行系统管理&#xff0c;并可以通过提供的…

【JavaSE】反射、枚举、lambda表达式

目录 反射反射相关类获取类中属性相关方法常用获得类相关的方法示例常用获得类中属性相关的方法示例获得类中注解相关的方法 反射优缺点 枚举常用方法优缺点 枚举与反射lambda表达式语法函数式接口简化规则使用示例变量捕获集合中的应用优缺点 反射 Java的反射&#xff08;refl…

通信协议感悟

本文结合个人所学&#xff0c;简要讲述SPI&#xff0c;I2C&#xff0c;UART通信的特点&#xff0c;限制。 1.同步通信 UART&#xff0c;SPI&#xff0c;I2C三种串行通讯方式&#xff0c;SPI功能引脚为CS&#xff0c;CLK&#xff0c;MOSI&#xff0c;MISO&#xff1b;I2C功能引…

若依从redis中获取用户列表

因为若依放入用户的时候&#xff0c;会在减值中添加随机串&#xff0c;所以用户的key会在redis中变成&#xff1a; login_tokens:6af07052-b76d-44dd-a296-1335af03b2a6 这样的样子。 如果用 Set<Object> items redisService.redisTemplate.keys("login_tokens&…

dcatadmin 自定义登录页面

一、问题&#xff1a; 在后台管理系统中&#xff0c;不同的项目想要不同的登录页面&#xff0c;但是框架自带的登录页面就只有一个。 解决&#xff1a; 由芒果系统改造的dcatadmin登录插件&#xff0c;实现一键安装改变登录页面。 项目介绍 基于Laravel和Vue的快速开发的后台管…

YOLO11改进 | 检测头 | 小目标遮挡物性能提升的检测头Detect_MultiSEAM【完整代码】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 基于深度学习的人脸检测算法取得了巨大进…

方法与方法重载

方法参数传递 方法语法&#xff1a; 访问修饰符 返回值类型 方法名&#xff08;形参列表&#xff09;{方法体[return 返回值] } 对象名.方法名&#xff08;实参列表&#xff09;注意&#xff1a;形参和实参一一对应&#xff08;个数和类型&#xff09; package com.hz.test12…

javax.net.ssl.SSLHandshakeException: Chain validation failed

异常描述&#xff1a; D/OkHttp: <-- HTTP FAILED: javax.net.ssl.SSLHandshakeException: Chain validation failed com.bfmd.okhttpsample I/Main: error: Chain validation failed异常解决&#xff1a; 解决方法一&#xff1a; 解决方法很简单&#xff0c;检查一下设备…

PID控制原理:看下这三个故事,你就明白了

一、PID的故事 小明接到这样一个任务&#xff1a;有一个水缸点漏水(而且漏水的速度还不一定固定不变)&#xff0c;要求水面高度维持在某个位置&#xff0c;一旦发现水面高度低于要求位置&#xff0c;就要往水缸里加水。 小明接到任务后就一直守在水缸旁边&#xff0c;时间长就觉…

SEO友好的wordpress模板 应该具体哪些特征

在数字营销的时代&#xff0c;搜索引擎优化(SEO)对于任何网站来说都是至关重要的。WordPress作为全球最受欢迎的内容管理系统之一&#xff0c;提供了大量的模板(也称为主题)供用户选择。一个SEO友好的WordPress模板不仅可以帮助您的网站在搜索引擎中获得更好的排名&#xff0c;…